Skip to content

docs(#5212): #890 on main — one onset position, a per-process harness null, and the JIT-listing capture - #5663

Merged
meshweaver-cloud[bot] merged 4 commits into
mainfrom
fix/890-emit-poison
Sep 24, 2026
Merged

meshweaver-cloud[bot] merged 4 commits into
mainfrom
fix/890-emit-poison

Conversation

@rbuergi

@rbuergi rbuergi commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Docs only: Doc/Architecture/NodeTypeCompilation gets a new #890 section, "2026-09-24 — two occurrences on main, one onset position, and the capture that reads the code".

  • Recurring, now on main: Plugins runs 35974400848 / 35985209459 (attempt 1), portal-hosts (network-133 · leg 4/8), MeshWeaver.PluginCatalog.Test, runtime 10.0.12 linux-x64, Roslyn 5.9.0. Same stack, same verdicts as every earlier occurrence (BELOW-ROSLYN, READS-HEALTHY, flat=EMITS, PRIVATE-COPY-EMITS). Both runs went green on attempt 2.
  • Denominator: 2 of 33 executions of that leg since 09-23 (≈6 %). The two newest main runs are red for other reasons and carry no canary.
  • The same onset position both times (the same test, compiling Widget/Thing), after emits that had already succeeded in the same host. So a fixed workload poisons about one process in 16, which means something is decided per process.
  • Population harness null: ≥600 short processes × 1,500 emits, with the pipeline's own options, 0 occurrences (≈36 expected at the leg's rate). An emit loop does not reach it.
  • Hypothesis, stated as one: the tier-1 code of the guard's call path (GDV plus a profile-guided cast expansion inside AsNestedTypeDefinitionImpl, whose shape varies per process). This is not established, and the section says what would refute it.
  • Instrument: Systemorph/MeshWeaver.Plugins#2357 captures DOTNET_JitDisasm listings of the six methods on every failing suite. The section explains how to read them.

Pairs-with: none — documentation only, no public surface touched.
Mirror-sync: none — no localisation catalog change.

Refs #5212

🤖 Generated with Claude Code

… null, and the JIT-listing capture

Two occurrences on Plugins main today (leg network-133 4/8, PluginCatalog.Test),
same onset test, ~2 of 33 executions. A population harness (>=600 processes)
does not reach the state. Records why the evidence now points at the tier-1
code of the guard's call path (a hypothesis, stated as one) and how to read
the JIT listing Plugins#2357 now captures on every failing suite.

Refs #5212

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Address the documented clarification issues before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 4 Low severity

Open (4)
What changed in this PR

This documentation-only PR adds a #890 investigation section covering recurring CI failures, process-level evidence, the current hypothesis, and JIT capture guidance.

Changes:

  • Documents two main occurrences and denominator analysis.
  • Records harness results and the tier-1 hypothesis.
  • Explains JIT listing capture and interpretation.
File Description
src/​MeshWeaver.Documentation/​Data/​Architecture/​NodeTypeCompilation.md Adds the #890 investigation section and capture guidance.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

| [`35974400848`](https://github.com/Systemorph/MeshWeaver.Plugins/actions/runs/35974400848) / `107555406130` | `3.0.0-ci.9287` (`bf5ac8552`) | `BELOW-ROSLYN` ×43 | `READS-HEALTHY` ×43 | `EMITS` ×43 | `PRIVATE-COPY-EMITS` ×43 | `Widget/Thing`, 08:45:39Z |
| [`35985209459`](https://github.com/Systemorph/MeshWeaver.Plugins/actions/runs/35985209459) / `107589527570` | `3.0.0-ci.9296` (`8d3fd9f5d`) | ×41 | ×41 | `EMITS` ×41 | ×41 | `Widget/Thing`, 10:27:55Z |

Both attempt 2s passed on the same head and set. The stack is byte-identical to every earlier

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6b3f328: each attempt 2 passed on the same head and platform set as its own attempt 1.

Comment on lines +1890 to +1892
What the position does and does not say: the same workload, in the same order, poisons one process
in ~16 and not the other fifteen. Whatever decides it is not in the workload's content or order — it
is decided **per process**.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, fixed in 6b3f328. It now says the outcome is not determined by content/order ALONE, and that the fixed position may be the deterministic trigger once a process carries the per-process condition.

Comment on lines +1916 to +1917
Locally, the tier-1 listing of `NamedTypeSymbol.AsNestedTypeDefinitionImpl` inlines
`SourceMemberContainerTypeSymbol.ContainingType` (`_containingSymbol as NamedTypeSymbol`) behind a

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 6b3f328: it now reads NamedTypeSymbolAdapter.AsNestedTypeDefinitionImpl. I also added why the JIT listing calls it NamedTypeSymbol:AsNestedTypeDefinitionImpl: in a Release Roslyn the adapter is a partial of NamedTypeSymbol, and the measured listing header prints that name, which is what a reader will grep for.

Comment on lines +1938 to +1939
locally. The file sits in `test-logs/`, which the collect step uploads **only when a suite failed**,
so a green run pays nothing and the `teardown-stragglers-*` artifact of the next occurrence holds the

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, fixed in 6b3f328. The listing is written on every run, so a green run pays the JIT disassembly of about 18 compilations plus a small local write. Only the artifact upload (storage) is failure-gated. The Plugins script comment says the same (Plugins#2357 @ 22313157).

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

0 files   -     3  0 suites   - 3   0s ⏱️ - 6m 17s
0 tests  - 2 012  0 ✅  - 2 012  0 💤 ±0  0 ❌ ±0 
0 runs   - 2 013  0 ✅  - 2 013  0 💤 ±0  0 ❌ ±0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

0 tests   - 443   0 ✅  - 443   0s ⏱️ - 1m 3s
0 suites  -   3   0 💤 ±  0 
0 files    -   3   0 ❌ ±  0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

0 tests   - 1 648   0 ✅  - 1 648   0s ⏱️ - 3m 13s
0 suites  -     2   0 💤 ±    0 
0 files    -     2   0 ❌ ±    0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

♻️ This comment has been updated with latest results.

…apter name, the green-run cost stated

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

0 files   -     5  0 suites   - 5   0s ⏱️ - 15m 33s
0 tests  - 4 078  0 ✅  - 4 076  0 💤  - 2  0 ❌ ±0 
0 runs   - 4 082  0 ✅  - 4 080  0 💤  - 2  0 ❌ ±0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

♻️ This comment has been updated with latest results.

rbuergi and others added 2 commits September 24, 2026 16:35
…ame onset test

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…on main

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

628 tests   - 115   628 ✅ + 77   28s ⏱️ - 6m 42s
  1 suites  -   2     0 💤  - 192 
  1 files    -   2     0 ❌ ±  0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  1 files  ±0    1 suites  ±0   2m 43s ⏱️ -21s
342 tests ±0  342 ✅ ±0  0 💤 ±0  0 ❌ ±0 
346 runs  ±0  346 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

  2 files   -    15    2 suites   - 15   3m 11s ⏱️ - 33m 12s
970 tests  - 8 296  970 ✅  - 8 102  0 💤  - 194  0 ❌ ±0 
974 runs   - 8 301  974 ✅  - 8 107  0 💤  - 194  0 ❌ ±0 

Results for commit 3416f27. ± Comparison against base commit 423b863.

@meshweaver-cloud
meshweaver-cloud Bot added this pull request to the merge queue Sep 24, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 24, 2026
@meshweaver-cloud
meshweaver-cloud Bot added this pull request to the merge queue Sep 24, 2026
@meshweaver-cloud

Copy link
Copy Markdown
Contributor

🔀 Merge-queue steward: re-queued alone (bisecting) — bisecting: your group of 2 pull requests failed on an uncatalogued assertion while this PR's own run was green; re-queued ALONE — if the solo build fails too, the PR stays out (group: #5661).
Group build: https://github.com/Systemorph/MeshWeaver/actions/runs/36015336112

  • MeshWeaver.Graph.Test.AHoldersCompletionLandsOnTheOwnerTest.TheRefusalNamesTheHolder_EvenWhenTheHoldersOwnReportIsFoldedFirst — System.InvalidOperationException : No reporter id out of 256 made the holder enumerate first — the search, not the subject, is what broke.

enqueued

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants