Skip to content

experiment(#5212): JIT capture + TieredPGO=0 — do not merge - #6245

Closed
rbuergi wants to merge 7 commits into
mainfrom
experiment/5212-jit-capture
Closed

rbuergi wants to merge 7 commits into
mainfrom
experiment/5212-jit-capture

Conversation

@rbuergi

@rbuergi rbuergi commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Throwaway experiment for #5212, plan: #5212 (comment). DO NOT MERGE. Branched from #6231 head 54fc990.

Only change: .github/workflows/dotnet-test.yml test matrix is shard 3 only with arm [A, B].

  • Arm A: DOTNET_JitStdOutFile=/tmp/jit/jit.txt, DOTNET_JitDisasmSummary=1, DOTNET_JitDisasm for PopulateNestedClassTableRows, getConsolidatedTypeParameters, CreateIndicesForNonTypeMembers, AsNestedTypeDefinitionImpl; uploaded as artifact jit-capture-shard3-attempt.
  • Arm B: DOTNET_TieredPGO=0.

Expected: Consolidate test results goes red (only shard 3 reports); that is by design.

🤖 Generated with Claude Code

Mirror-sync: none — experiment branch, never merged; the key comes from #6231, which carries its own Mirror-sync statement.
Pairs-with: none — experiment branch, never merged.

rbuergi and others added 7 commits October 7, 2026 09:10
…ilent member drop

Plugins#3042: Feedback/Feedback nodes created as {"$type":"Feedback",...} (no such
type; the NodeType binds FeedbackContent) were stored and became dead letters.

- ContentSchemaValidator: a $type that contradicts the declared content type and
  resolves on none of this hub's registry, the mesh-wide content-type map, or the
  declared type's own assembly is refused (content.schema.unknownDiscriminator).
  ContentDiscriminatorValidator exempts runtime-compiled NodeTypes, so nothing
  refused it there before.
- MeshOperations.Create: refuses top-level content members the bound type does not
  declare (the Patch/Update rule) and the same unresolvable $type, judged on the
  probe hub. The probe resolved the bound type by the NodeType PATH as a $type name,
  which misses whenever the record is not named like the NodeType; it now falls back
  to IMeshContentTypeRegistry.TryResolveByNodeType (create-only checks; the historical
  ValidateAgainst keeps its reach).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…es probe options and the mesh-wide registry

Review on #6231:
- ContentSchemaValidator normalizes the as-written JsonObject DOM to a JsonElement before judging,
  so a direct Create/Update carrying {"$type":"Feedback"} as a JsonObject is refused too (new test).
- MeshOperations.ValidateCreatedContent judges unknown members with the probe hub's serializer
  options, which own the bound type's contract.
- MeshOperations.DiscriminatorResolves consults IMeshContentTypeRegistry (full + short name), the same
  instruments as the write-boundary validator, so the verb never refuses what the boundary admits.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ite boundary; pin the Update discriminator cases

A $type naming a DIFFERENT real type carries that type's members, so the MCP
create verb no longer judges them against the declared type (it refused what
ContentSchemaValidator admits). Adds the MCP control, an Update-to-unknown-$type
refusal, and the keep-the-stored-$type exemption with its negative control.

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

AStaleRecordDoesNotUndoTheGateTest arranged its partition root as NodeType `Space` with
content `{"$type":"PluginContent"}` — a shape nothing in production writes (a plugin root is
`Store/Plugin` with `PluginContent`; the installer's only `Space` root is the content-free
stage-0 placeholder). That content names a type its NodeType does not bind and that resolves
nowhere on this mesh, which is exactly what #6231's write-boundary refusal exists to stop, so
the precondition write was refused and all three async tests failed in shard 4.

The fixture now declares a content-free stand-in `Store/Plugin` NodeType (the real one lives in
MeshWeaver.Plugins) and writes the root under it. The root's content stays the raw
`"$type":"PluginContent"` JSON PreInstalledOnRoot recognises — what a core host that never
compiled the plugins' types actually reads — so the tests exercise the same code path as before.
The refusal is unchanged.

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

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

    8 files   -    14      8 suites   - 14   16m 49s ⏱️ - 31m 31s
2 608 tests  - 8 356  2 604 ✅  - 8 167  0 💤  - 193  4 ❌ +4 
5 221 runs   - 5 756  5 217 ✅  - 5 567  0 💤  - 193  4 ❌ +4 

For more details on these failures, see this check.

Results for commit 021b6dc. ± Comparison against base commit cac0664.

This pull request removes 8383 and adds 3 tests. Note that renamed tests count towards both.

   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---, expected: True)
   --- End of inner exception stack trace ---, isDenial: True)
 ---> (Inner Exception #1) MeshWeaver.Mesh.QueryProviderStalledException: Query provider(s) [pg] did not emit an Initial within the query fan-in's 16s bound for query 'nodeType:NodeType' (user 'system'). The merged Initial gates on EVERY provider, so this query has NO snapshot to answer with — it is reported as unavailable (retryable) rather than left hanging with no error. This is an availability failure, never a permission verdict: a consumer deciding access must fail CLOSED and say it could not establish the answer. Fix the stalled provider; never bump the consumer's timeout.<---
 ---> (Inner Exception #1) MeshWeaver.Messaging.Hub.Test.InfrastructureFaultTest+ProviderException (0x80004005): Failed to connect to 10.42.18.4:5432<---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
 ---> (Inner Exception #1) System.InvalidOperationException: boom<---
 ---> (Inner Exception #1) System.InvalidOperationException: source B is misconfigured<---
 ---> (Inner Exception #1) System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known<---
…
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "561be730-0b4a-4d63-b152-8e386cbf551b")
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "81a6c740-1cfc-440c-8e86-0f67bbb4f572")
MeshWeaver.Documentation.Test ‑ HOST_CRASHED

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

    4 files  ±0      4 suites  ±0   9m 37s ⏱️ + 2m 52s
2 607 tests +1  2 603 ✅  - 3  0 💤 ±0  4 ❌ +4 
2 611 runs  +1  2 607 ✅  - 3  0 💤 ±0  4 ❌ +4 

For more details on these failures, see this check.

Results for commit 021b6dc. ± Comparison against base commit cac0664.

This pull request removes 1 and adds 2 tests. Note that renamed tests count towards both.
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "73aefb8f-b765-4fa5-8cc0-5625657c7680")
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "561be730-0b4a-4d63-b152-8e386cbf551b")
MeshWeaver.Documentation.Test ‑ HOST_CRASHED

♻️ This comment has been updated with latest results.

@rbuergi

rbuergi commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

Closing: experiment done. Attempt 3 of run 37635375205 caught an occurrence — arm A (JIT capture) hit the #5212 signature (job 112878675728), arm B (DOTNET_TieredPGO=0) passed (job 112878675545). The capture analysis goes to #5212; the run and its artifacts stay available after closing.

@rbuergi rbuergi closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant