Skip to content

fix(#890): Tiered PGO off in every compiling host — the .NET 10 JIT drops the isinst in Roslyn's inlined ContainingType - #6254

Merged
meshweaver-cloud[bot] merged 2 commits into
mainfrom
fix/890-jit-drops-isinst-tieredpgo-off
Oct 7, 2026
Merged

meshweaver-cloud[bot] merged 2 commits into
mainfrom
fix/890-jit-drops-isinst-tieredpgo-off

Conversation

@rbuergi

@rbuergi rbuergi commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

What was red

Three Memex.Portal.Shared.Test tests failed on unrelated PRs (#6231 run 37637952561, #6248 run 37639719471) and on main (041dde2, e383542, cbb3053):

  • InstallNeverInheritsRepoCompileVerdictTest.InstallingAPackageWhoseNodeFileCarriesAVerdict_LandsTheAuthoredDefinitionOnly
  • ModulesUpdateIndependentlyOfThePlatformTest.ABundleThatCarriesAPlatformAssembly_IsRefusedByName_AndTheSameBundleWithoutItLands
  • ModulesUpdateIndependentlyOfThePlatformTest.ThePlatformStaysFixed_WhileAModuleGoesNToNPlus2Live_AndAFloorAboveItIsDeclinedWhileASiblingUpdates

None of them was an assertion about module adoption. Every one died inside Roslyn: PROCESS CANNOT EMIT (#890), NRE at NamedTypeSymbol.Microsoft.Cci.ITypeDefinitionMember.get_ContainingTypeDefinition, canary=BELOW-ROSLYN … compiler=PRIVATE-COPY-EMITS image=INTACT. Once the host is in that state, every later Emit fails, including the tests' own stand-in compiles.

Why it started now: the part-1/part-2 class split is every other class of the sorted list. The classes #6128 added shifted that split, which moved InstallNeverInherits… (and #6128's own ModulesUpdateIndependently…) into part 1, behind the stand-in emits of ModulePlatformMemberLinkTest/ModuleLinkVersionTest. Since then part 1 poisoned in 4 of 12 main runs. Before #6128 those tests ran in part 2 and passed. #6230 and #6196 are not involved: the failures come before any adoption assertion runs.

The defect, measured in CI's shape

Experiment branch exp/890-tieredpgo-split-arm, run 37647154163. It reuses the poisoned PR's own build-output-3 artifact and launches part 1 exactly the way the shard does, on 14 runners per arm:

arm poisoned clean
defaults (+ DOTNET_JitDisasm capture) 4 10
DOTNET_TieredPGO=0 0 14

The JIT listing matches the outcome on all 14 default-arm hosts. The Tier-1 NamedTypeSymbol:AsNestedTypeDefinitionImpl inlines SourceMemberContainerTypeSymbol.ContainingType, which is _containingSymbol as NamedTypeSymbol. In all 10 clean hosts the inlined cast keeps its CORINFO_HELP_ISINSTANCEOFCLASS. In all 4 poisoned hosts it is gone (mov rax, [rbx+0x38]; jmp → test rax,rax). So a top-level type's namespace container reads as its containing type, the guard admits it, and the writer dereferences null. This happened on hosts with and without AVX-512 (VEX and EVEX). This is a .NET 10 (10.0.12 linux-x64) JIT defect, not a bug in this repo.

The change

  • <TieredPGO>false</TieredPGO> in the root Directory.Build.props (every executable this repo builds, including mw-plugin-test) and in test/Directory.Build.props (which does not import the root). It reaches each host as System.Runtime.TieredPGO: false in its runtimeconfig. That file is what a dotnet <name>.dll launch reads.
  • TieredPgoIsOffInEveryCompilingHostTest pins that the switch reaches the host, both via AppContext and in the runtimeconfig on disk. Negative control: a build with -p:TieredPGO=true fails both assertions (run locally).
  • NodeTypeCompilation.md gets a new section, "The defect, in one listing — the JIT drops the isinst, and Tiered PGO off removes it".

This is a workaround for a runtime defect, and it is labelled as one. Remove it only with the split arm re-run on a runtime that fixes it.

Not in this PR: the portal hosts (Memex.Portal.*, MeshWeaver.Plugins) need the same property. Until they have it, production NodeType compiles are exposed to the same per-process miscompile. Nobody has yet checked whether production replicas reach this state. No addresses need a recycle: this is a process-start setting that takes effect on the next host start.

Pairs-with: none — no public surface removed
Mirror-sync: none — no i18n catalog change

🤖 Generated with Claude Code

… JIT drops the isinst in Roslyn's inlined ContainingType

Memex.Portal.Shared.Test part 1/2 poisoned in 4 of 12 main runs since the class split moved
InstallNeverInheritsRepoCompileVerdictTest behind the suite's stand-in emits: every Emit in the
host then throws NRE in NamedTypeSymbol.get_ContainingTypeDefinition (#890), failing
InstallNeverInherits…, both ModulesUpdateIndependentlyOfThePlatformTest cases, or all of
ModuleLinkVersionTest — on unrelated PRs.

Reproduced in CI's own shape (run 37647154163, the poisoned PR's build-output-3, part 1 launched
as the shard launches it, 14 runners per arm): defaults 4 poisoned / 10 clean, DOTNET_TieredPGO=0
0 / 14. The Tier-1 listing of NamedTypeSymbol.AsNestedTypeDefinitionImpl explains it 14 of 14:
the inlined SourceMemberContainerTypeSymbol.ContainingType (`_containingSymbol as NamedTypeSymbol`)
keeps its isinst in all 10 clean hosts and has none in all 4 poisoned ones, so a top-level type's
namespace container reads as its containing type.

TieredPGO=false in the root and test Directory.Build.props reaches every host's runtimeconfig
(System.Runtime.TieredPGO). TieredPgoIsOffInEveryCompilingHostTest pins it; negative control:
a build with -p:TieredPGO=true fails both assertions. Workaround for a runtime defect, documented
as one in NodeTypeCompilation.md ("The defect, in one listing").

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 7, 2026 16:07
@meshweaver-cloud
meshweaver-cloud Bot enabled auto-merge October 7, 2026 16:07

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.

🟡 Changes recommended

The test guard does not verify the root configuration used by production compiling hosts such as mw-plugin-test.

1 open finding
What changed in this PR

Disables Tiered PGO to avoid a .NET 10 JIT defect that corrupts Roslyn compilation hosts.

Changes:

  • Disables Tiered PGO for source and test hosts.
  • Adds runtime configuration assertions.
  • Documents the diagnosis and workaround.
File Description
Directory.Build.props Disables Tiered PGO for repository executables.
test/​Directory.Build.props Disables Tiered PGO for test hosts.
test/​Memex.Portal.Shared.Test/​TieredPgoIsOffInEveryCompilingHostTest.cs Verifies the test-host runtime configuration.
src/​MeshWeaver.Documentation/​Data/​Architecture/​NodeTypeCompilation.md Records evidence, mechanism, and remediation.

🧠 Review effort: Balanced


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

/// files. Negative control: building this project with <c>-p:TieredPGO=true</c> makes both assertions
/// fail.</para>
/// </summary>
public class TieredPgoIsOffInEveryCompilingHostTest

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, and fixed in 4182810. BakeHostRunsWithTieredPgoOffTest in MeshWeaver.PluginTester.Test parses the runtimeconfigs the SDK copies beside it from the referenced root-inheriting executables, mw-plugin-test.runtimeconfig.json and mw-combo-verify.runtimeconfig.json, and asserts "System.Runtime.TieredPGO": false in each.

Negative control, run locally: I deleted <TieredPGO>false</TieredPGO> from the root Directory.Build.props only and left the test tree's copy in place. Both cases went red (Total: 2, Failed: 2). With the property restored, both pass. The doc section and the root-props comment now name both guards.

@systemorph-com
systemorph-com Bot disabled auto-merge October 7, 2026 16:11
…ify runtimeconfigs carry TieredPGO off (review)

Negative control: deleting the root property alone turns both cases red while the
test tree's copy stays.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 7, 2026 16:17
@meshweaver-cloud
meshweaver-cloud Bot enabled auto-merge October 7, 2026 16:17

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.

🟢 Approval recommended

The centralized settings, regression guards, and documentation consistently address the identified runtime defect.

1 open finding

🧠 Review effort: Balanced

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

    5 files  ±0      5 suites  ±0   4m 38s ⏱️ +3s
1 230 tests ±0  1 230 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 231 runs  ±0  1 231 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

1 846 tests  +2   1 844 ✅ +2   4m 59s ⏱️ +39s
    4 suites ±0       2 💤 ±0 
    4 files   ±0       0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  3 files  ±0    3 suites  ±0   6m 30s ⏱️ - 1m 1s
571 tests ±0  380 ✅ ±0  191 💤 ±0  0 ❌ ±0 
575 runs  ±0  384 ✅ ±0  191 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

    4 files  ± 0      4 suites  ±0   7m 13s ⏱️ +18s
2 654 tests +46  2 654 ✅ +46  0 💤 ±0  0 ❌ ±0 
2 658 runs  +46  2 658 ✅ +46  0 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

This pull request removes 72 and adds 118 tests. Note that renamed tests count towards both.
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "bde0cdbb-0f56-4038-a5ed-065af9077232")
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ALegacyRegistryToken_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ANamedRegistrysOwnToken_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ARegistrationKey_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ NeitherKeyNorToken_IsTheOpenLane
Memex.Portal.Shared.Test.TokenValidationIsIssuedOffTheRouterTest ‑ TheCapture_RecordsAViolation_WhenTheRouterGenuinelyPostsWork
Memex.Portal.Shared.Test.TokenValidationIsIssuedOffTheRouterTest ‑ TokenValidationIssuedFromTheRootMeshHub_NeverPutsTheRouterOnEitherEnd
Memex.Portal.Shared.Test.TokenValidationReadinessTest ‑ FewerFailuresThanTheThreshold_StayReady
Memex.Portal.Shared.Test.TokenValidationReadinessTest ‑ GoodSample_IsReady
Memex.Portal.Shared.Test.TokenValidationReadinessTest ‑ NoStore_IsReady
…
Memex.Portal.Shared.Test.InstanceIdRulesMatchTheRegistryTest ‑ TheSetupHostAgreesWithTheRegistry(candidate: "6364b9b4-3e20-4f34-b242-2ca82282df1c")
Memex.Portal.Shared.Test.TokenMintedOnOneReplicaValidatesOnAnotherTest ‑ AFreshTokenIsValidOnTheReplicaThatDidNotMintIt
Memex.Portal.Shared.Test.TokenMintedOnOneReplicaValidatesOnAnotherTest ‑ AnUnknownTokenIsADefinitiveNegativeOnEitherReplica
Memex.Portal.Shared.Test.TokenValidationHotPathTest ‑ RealToken_ValidatesFromTheStore_AndIsCached
Memex.Portal.Shared.Test.TokenValidationHotPathTest ‑ UnknownToken_IsADefinitiveNotFound_NotUnavailable
Memex.Portal.Shared.Test.TokenValidationNegativeStagesTest ‑ ARowThatExistsButCarriesNoTokenRecord_IsLoggedUnreadable_NotNotFound
Memex.Portal.Shared.Test.TokenValidationNegativeStagesTest ‑ AnAbsentRow_IsLoggedNotFound_NeverUnreadable
Memex.Portal.Shared.Test.TokenVerdictAndCacheTest ‑ Cache_IsBounded
Memex.Portal.Shared.Test.TokenVerdictAndCacheTest ‑ Cache_NeverRemembersFailures
Memex.Portal.Shared.Test.TokenVerdictAndCacheTest ‑ Cache_RemembersSuccesses_UntilTheTtl
…

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

    2 files  ±0      2 suites  ±0   8m 40s ⏱️ +5s
1 119 tests ±0  1 119 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 120 runs  ±0  1 120 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

    4 files  ± 0      4 suites  ±0   16m 42s ⏱️ -8s
3 568 tests  - 36  3 568 ✅  - 36  0 💤 ±0  0 ❌ ±0 
3 571 runs   - 36  3 571 ✅  - 36  0 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

This pull request removes 148 and adds 88 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.SessionDenialIsAnAnswerTest ‑ OnlyAVerdictReadsAsADenial(shape: "the same verdict nested, as a late denial dispatch"···, failure: System.InvalidOperationException: write failed
 ---> System.UnauthorizedAccessException: Access denied
   --- End of inner exception stack trace ---, isDenial: True)
Memex.Portal.Shared.Test.TieredPgoIsOffInEveryCompilingHostTest ‑ TheRuntimeConfigOnDiskCarriesIt
Memex.Portal.Shared.Test.TieredPgoIsOffInEveryCompilingHostTest ‑ TheRuntimeIsHandedTieredPgoOff
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ALegacyRegistryToken_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ANamedRegistrysOwnToken_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ ARegistrationKey_IsOperatorProvisioning
Memex.Portal.Shared.Test.TokenProvisionedInstanceIsKeyedTest ‑ NeitherKeyNorToken_IsTheOpenLane
Memex.Portal.Shared.Test.TokenValidationIsIssuedOffTheRouterTest ‑ TheCapture_RecordsAViolation_WhenTheRouterGenuinelyPostsWork
Memex.Portal.Shared.Test.TokenValidationIsIssuedOffTheRouterTest ‑ TokenValidationIssuedFromTheRootMeshHub_NeverPutsTheRouterOnEitherEnd
Memex.Portal.Shared.Test.TokenValidationReadinessTest ‑ FewerFailuresThanTheThreshold_StayReady
…

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Test Results

    22 files  ± 0      22 suites  ±0   48m 43s ⏱️ -4s
10 988 tests +12  10 795 ✅ +12  193 💤 ±0  0 ❌ ±0 
11 001 runs  +12  10 808 ✅ +12  193 💤 ±0  0 ❌ ±0 

Results for commit 4182810. ± Comparison against base commit e1820b0.

This pull request removes 40 and adds 28 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: "6364b9b4-3e20-4f34-b242-2ca82282df1c")
Memex.Portal.Shared.Test.SessionDenialIsAnAnswerTest ‑ OnlyAVerdictReadsAsADenial(shape: "the same verdict nested, as a late denial dispatch"···, failure: System.InvalidOperationException: write failed
 ---> System.UnauthorizedAccessException: Access denied
   --- End of inner exception stack trace ---, isDenial: True)
Memex.Portal.Shared.Test.TieredPgoIsOffInEveryCompilingHostTest ‑ TheRuntimeConfigOnDiskCarriesIt
Memex.Portal.Shared.Test.TieredPgoIsOffInEveryCompilingHostTest ‑ TheRuntimeIsHandedTieredPgoOff
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's FIRST member", fault: System.AggregateException: One or more errors occurred. (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.)
 ---> 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.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall as an aggregate's SECOND member", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (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.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (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.<---
, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall nested in an aggregate inside a wrapper", fault: System.InvalidOperationException: outer
 ---> System.AggregateException: One or more errors occurred. (Value does not fall within the expected range.) (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.)
 ---> System.ArgumentException: Value does not fall within the expected range.
   --- End of inner exception stack trace ---
 ---> (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.<---

   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "a stall wrapped as InnerException", fault: System.InvalidOperationException: outer
 ---> 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.
   --- End of inner exception stack trace ---, expected: True)
MeshWeaver.Compiler.Pipeline.Test.SourcesWatcherStallBackoffTest ‑ The_production_classifier_recognises_a_stall_through_every_wrapping(because: "an aggregate of unrelated faults", fault: System.AggregateException: One or more errors occurred. (The operation has timed out.) (Value does not fall within the expected range.)
 ---> System.TimeoutException: The operation has timed out.
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) System.ArgumentException: Value does not fall within the expected range.<---
, expected: False)
MeshWeaver.Documentation.Test.PlatformFileReaderGuard ‑ TheBudgetMode_ReadsTheBudget_WarnsAtEightyPercent_AndNeverFailsTheJob(body: "[1,2,3]", withToken: True, expected: "REST budget: /rate_limit answered something unread"···, warns: False)
…

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