You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reflection work item in the browser-wasm ReadyToRun runtime-test leg asserts in Thread::ObjectRefFlush. It fails deterministically — the same work item fails in both 1580911 (Helix job 20b86593-abb9-407d-9cd2-35a9f3ca8784) and 1581582 (Helix job 091c9316-24e7-4e7a-964c-940d0e133fdc).
Helix categorises this as InfrastructureError. It is not — it is a real product assert in a checked runtime.
Relationship to other issues
This is the same underlying defect as #133219, #131925, and #132022 — a thread left in preemptive GC mode on the browser-wasm ReadyToRun path — caught at a different debug checkpoint.
It is filed separately from #133219 only because Build Analysis matches on error text, and this assert's text differs. Object::Validate catches the bad mode on the next OBJECTREF access (#133219, 20 work items); Thread::ObjectRefFlush catches it on entry to the fixup worker (this issue, 1 work item). Consolidate if a maintainer prefers.
This uses the array form: each element matches one line, in order, with arbitrary lines allowed between them.
thread->PreemptiveGCDisabled() on its own is not a usable signature — it appears at 26 assert sites across the VM and is platform-neutral, so matching it alone would mark unrelated failures on any platform as known.
The four elements together scope the match: the exact assert text, the exact source location, the asserting function, and Process: 42 — emscripten's fixed PID, which native platforms do not report. That last element is what keeps the match on browser-wasm.
All four elements were verified verbatim against the reflection console log for Helix job 091c9316-24e7-4e7a-964c-940d0e133fdc. The frame chain is deliberately excluded because the innermost frame varies by work item across this failure family.
Note
This issue was authored with GitHub Copilot.
Known issue validation
Build: 🔎https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581582 Error message validated:[Expression: thread->PreemptiveGCDisabled() Location: /__w/1/s/src/coreclr/vm/threads.cpp:4624 Function: ObjectRefFlush Process: 42] Result validation: ❌ Known issue did not match with the provided build. Validation performed at: 9/4/2026 3:06:22 AM UTC
Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581582
Build error leg or test failing:
coreclr Pri0 Runtime Tests Run R2R_CG2 browser wasm checked—reflectionwork itemPull request: #133136
The
reflectionwork item in the browser-wasm ReadyToRun runtime-test leg asserts inThread::ObjectRefFlush. It fails deterministically — the same work item fails in both 1580911 (Helix job20b86593-abb9-407d-9cd2-35a9f3ca8784) and 1581582 (Helix job091c9316-24e7-4e7a-964c-940d0e133fdc).Helix categorises this as
InfrastructureError. It is not — it is a real product assert in a checked runtime.Relationship to other issues
This is the same underlying defect as #133219, #131925, and #132022 — a thread left in preemptive GC mode on the browser-wasm ReadyToRun path — caught at a different debug checkpoint.
It is filed separately from #133219 only because Build Analysis matches on error text, and this assert's text differs.
Object::Validatecatches the bad mode on the next OBJECTREF access (#133219, 20 work items);Thread::ObjectRefFlushcatches it on entry to the fixup worker (this issue, 1 work item). Consolidate if a maintainer prefers.Error Details
Error Message
{ "ErrorMessage": [ "Expression: thread->PreemptiveGCDisabled()", "Location: /__w/1/s/src/coreclr/vm/threads.cpp:4624", "Function: ObjectRefFlush", "Process: 42" ], "ErrorPattern": "", "BuildRetry": false, "ExcludeConsoleLog": false }Why the match block is scoped this way
This uses the array form: each element matches one line, in order, with arbitrary lines allowed between them.
thread->PreemptiveGCDisabled()on its own is not a usable signature — it appears at 26 assert sites across the VM and is platform-neutral, so matching it alone would mark unrelated failures on any platform as known.The four elements together scope the match: the exact assert text, the exact source location, the asserting function, and
Process: 42— emscripten's fixed PID, which native platforms do not report. That last element is what keeps the match on browser-wasm.All four elements were verified verbatim against the
reflectionconsole log for Helix job091c9316-24e7-4e7a-964c-940d0e133fdc. The frame chain is deliberately excluded because the innermost frame varies by work item across this failure family.Note
This issue was authored with GitHub Copilot.
Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581582
Error message validated:
[Expression: thread->PreemptiveGCDisabled() Location: /__w/1/s/src/coreclr/vm/threads.cpp:4624 Function: ObjectRefFlush Process: 42]Result validation: ❌ Known issue did not match with the provided build.
Validation performed at: 9/4/2026 3:06:22 AM UTC