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
{{ message }}
Repository navigation
Unit-test executable intermittently exits 139 in native thread-static initialization on macOS arm64 #7434
The net10.0 unit-test executable exited with code 139 before reporting any tests on macOS arm64. The macOS crash report identifies a native .NET runtime null-address fault in MethodTable::CheckRunClassInitThrowing() called by GetThreadStaticsByIndex. A subsequent run of the same binaries passed; this report preserves the intermittent failure for investigation.
Reproduction
Observed once while validating #7417 (head 993e845ad05dc3acd97523cdbb5eecefef6d2866 with the pending scope-cleanup and retry-handler fixes):
dotnet test --project tests/TUnit.UnitTests --framework net10.0
A targeted TUnit.TestProject build was running concurrently. After that build finished, dotnet test --project tests/TUnit.UnitTests --framework net10.0 --no-build passed with 699 tests and 3 skips. Reproduction is intermittent; concurrent builds have not been established as the cause.
Expected and actual
Expected: tests run and report managed failures if present.
Actual: zero tests reported, exit 139, with a native EXC_BAD_ACCESS / SIGSEGV at address 0x20 on a .NET TP Worker thread. Top native frames:
Audited against main d87516cb9c and the linked #7417 report. No later reproduction, runtime diagnosis, or fix is recorded, and the same-binary pass does not establish that the crash is fixed. Keep this investigation open; capture a runtime dump if it recurs, as requested. No dependency on #7417 is needed because a native runtime failure has not been attributed to that change.
Investigated current main 08f2aca66e on macOS arm64 with SDK 10.0.403 / runtime 10.0.14. The unit suite passed (935 total: 932 succeeded, 3 skipped) with crash capture enabled; no recurrence was observed.
The archived original macOS report from 2026-11-03 01:03:55 confirms SIGSEGV at address 0x20 in MethodTable::CheckRunClassInitThrowing() / GetThreadStaticsByIndex + 100. Recent local reports are Native AOT SIGABRT failures with different stacks and are not evidence of this crash recurring. The similar upstream report dotnet/runtime#132691 was closed as resolved by 10.0.12; this report uses 10.0.14, so matching stacks do not establish the same cause.
PR #7659 adds macOS CI heap crash-dump capture and seven-day artifact retention, plus local reproduction/capture instructions. A standalone FailFast probe verified that these settings produce a dump (370,430,104 bytes) while retaining failure exit 134; the synthetic dump was then deleted. The PR intentionally does not close this investigation: there is no evidence yet of a TUnit fix or an attributable upstream defect. If the exit-139 fault recurs, retain the new dump, exact runtime/commit and native crash report before rerunning; use that evidence to establish a minimal reproduction and root cause.
Activity
thomhurst commentedon Nov 3, 2026
Audited against main
d87516cb9cand the linked #7417 report. No later reproduction, runtime diagnosis, or fix is recorded, and the same-binary pass does not establish that the crash is fixed. Keep this investigation open; capture a runtime dump if it recurs, as requested. No dependency on #7417 is needed because a native runtime failure has not been attributed to that change.thomhurst commentedon Nov 5, 2026
Investigated current main
08f2aca66eon macOS arm64 with SDK 10.0.403 / runtime 10.0.14. The unit suite passed (935 total: 932 succeeded, 3 skipped) with crash capture enabled; no recurrence was observed.The archived original macOS report from 2026-11-03 01:03:55 confirms SIGSEGV at address 0x20 in
MethodTable::CheckRunClassInitThrowing()/GetThreadStaticsByIndex + 100. Recent local reports are Native AOT SIGABRT failures with different stacks and are not evidence of this crash recurring. The similar upstream report dotnet/runtime#132691 was closed as resolved by 10.0.12; this report uses 10.0.14, so matching stacks do not establish the same cause.PR #7659 adds macOS CI heap crash-dump capture and seven-day artifact retention, plus local reproduction/capture instructions. A standalone FailFast probe verified that these settings produce a dump (370,430,104 bytes) while retaining failure exit 134; the synthetic dump was then deleted. The PR intentionally does not close this investigation: there is no evidence yet of a TUnit fix or an attributable upstream defect. If the exit-139 fault recurs, retain the new dump, exact runtime/commit and native crash report before rerunning; use that evidence to establish a minimal reproduction and root cause.
Encrypt credential-bearing crash dumps for #7434
Clarify crash capture process scope for #7434
Capture macOS native runtime crashes for diagnosis (#7659)