Repository navigation
Test failure: Regressions/coreclr/GitHub_89834/test89834/test89834.cmd #135404
Description
Activity
- addedblocking-clean-ci-optionalBlocking optional rolling runsBlocking optional rolling runsKnown Build ErrorUse this to report build issues in the .NET Helix tabUse this to report build issues in the .NET Helix tab
on Oct 8, 2026 - addeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Oct 8, 2026 dotnet-policy-service commented
on Oct 8, 2026 ContributorMore actionsTagging subscribers to this area: @agocke
See info in area-owners.md if you want to be subscribed.- linked a pull request that will close this issueInvestigate test89834 SIGBUS on macOS ARM64 #135547
on Oct 9, 2026 I downloaded the macOS ARM64 dump and analyzed it with the exact matching CoreCLR native symbols. The evidence points to a GC hole in
CORINFO_HELP_BULK_WRITEBARRIER_SMALL: the helper is classified as non-GC, but its first call can enter the prestub and trigger a collection.This helper was introduced by #134345. The same helper/prestub hole is explicitly listed as not fixed in #135415; this dump shows its ARM64 failure mechanism.
Evidence from the dump and in-memory stress log
-
AsyncTaskMethodBuilder<int>.GetStateMachineBox<test89834.<Main>d__0>copies the 40-byte state machine using the small bulk-write-barrier helper. I decoded this method's version-5 GC info: it has 28 safepoints, but no safepoint at the bulk-copy return address0x10eaba664(method offset0x204). -
The call goes through a jump stub at
0x10ea80370to the precode at0x1050b3990. The precode belongs toSystem.Buffer.BulkMoveWithWriteBarrierInternal; the dynamic-helper table also contains that precode address. -
The stress log records full compacting GC 10815 while this FCall's prestub frame is active, with
GetStateMachineBoxsuspended at0x10eaba664. The box moves from0x7002400040to0x7002077118. The destination interior pointer and the state machine's stack reference are relocated correctly, but the caller's live box reference in X22 is not reported. -
After returning, the caller immediately executes:
0x10eaba664: mov x0, x22 ... 0x10eaba678: blr x1 ; AsyncStateMachineBox.get_Context
At the subsequent prestub, saved X22 and argument X0 both contain the old box address,
0x7002400040, while the stack reference at0x16ae317c8correctly contains0x7002077118. -
GC 10816 then attempts to relocate that stale reference.
relocate_addressfollows the brick-table entries into an invalid tree at0x70023fefff, andnode_right_childfaults reading0x70023feff1. The actual fault is SIGBUS, at0x10a583f14:ldursh x28, [x27, #-0xe]
The
relocate_address/tree_searchcrash is therefore the consequence of the stale root, rather than evidence of an independent GC tree-maintenance bug.Source-level mechanism
At the crashing commit,
30f813606aed8f64dbb3e296dba3f99a7c77590f:utils.cppclassifiesCORINFO_HELP_BULK_WRITEBARRIER_SMALLasisNoGC = true.jithelpers.hregisters it as a dynamic helper backed byMETHOD__BUFFER__MEMCOPYGC_SMALL(BulkMoveWithWriteBarrierInternal).LoadDynamicJitHelperresolves the helper usingpMD->GetMultiCallableAddrOfCode().- For FCalls,
TryGetMultiCallableAddrOfCodereturns the stable entrypoint, allowing the first call to enter the collecting prestub instead of directly calling the native worker.
A fix needs to ensure that the no-GC helper resolves directly to the native worker without a collecting prestub transition, or revert the small-copy optimization. This is dump/stress-log/source analysis; I have not reproduced the failure or validated a fix.
Note
This analysis and comment were generated with GitHub Copilot.
-
Metadata
Metadata
Labels
Type
Projects
- StatusShow more project fieldsNo status
Build Information
Build: https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=1622784
Build error leg or test failing: Regressions/coreclr/GitHub_89834/test89834/test89834.cmd
Error Detail
Error Message
Fill the error message using step by step known issues guidance.
{ "ErrorMessage": "Failed test: Regressions/coreclr/GitHub_89834/test89834/test89834.cmd", "BuildRetry": false, "ExcludeConsoleLog": false }Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1622784
Error message validated:
[Failed test: Regressions/coreclr/GitHub_89834/test89834/test89834.cmd]Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 10/8/2026 2:15:45 AM UTC
Report
Summary