[ci-scan] Mute JIT/SIMD/Vector3Interop under GCStress (gcstress-extra pipeline)#127820
[ci-scan] Mute JIT/SIMD/Vector3Interop under GCStress (gcstress-extra pipeline)#127820github-actions[bot] wants to merge 2 commits into
Conversation
JIT/SIMD/Vector3Interop_r crashes with a GC assertion failure (Object::ValidateInner) when run under DOTNET_GCStress=0xC + DOTNET_JitStress=2. This is a product-side JIT bug in GC liveness tracking for SIMD/Vector3 types. Mark both _r and _ro variants as GCStressIncompatible to prevent the crash-induced helix failures until the root cause is fixed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
🤖 Copilot Code Review — PR #127820Note This review was generated by GitHub Copilot. Holistic AssessmentMotivation: Justified. The Vector3Interop test crashes with a GC assertion failure ( Approach: Correct. Summary: ✅ LGTM. Minimal, well-scoped change that follows the established muting pattern with proper issue traceability. Detailed Findings✅ Pattern Consistency — Correct usage of GCStressIncompatibleThe property is placed in the first ✅ Completeness — Both test variants coveredBoth ✅ Traceability — Issue reference includedThe XML comment
|
Reasoning
JIT/SIMD/Vector3Interop_r/Vector3Interop_r.cmdcrashes the CoreCLR runtime with a GC assertion failure inObject::ValidateInner(object.cpp:548) when run underDOTNET_GCStress=0xC + DOTNET_JitStress=2 + DOTNET_ReadyToRun=0on macOS arm64 and Linux x64/arm64.The crash stack:
Thread::DoGcStress → GcScanRoots → TGcInfoDecoder::ReportStackSlotToGC → Object::ValidateInner. This indicates the JIT emits incorrect GC liveness information for aVector3struct method — the root cause is in the JIT product code, not in the test.Adding
<GCStressIncompatible>true</GCStressIncompatible>to both the_r(optimized) and_ro(optimized-off).csprojvariants causes the test harness to skip these tests whenDOTNET_GCStressis set, matching the pattern used by other stress-incompatible tests (e.g.,JIT/Stress/ABI/pinvokes_d.csproj). This is a standard muting approach; the product fix tracked in the linked issue will re-enable the tests when ready.Impact on platforms
Errors log
Stress environment:
DOTNET_GCStress=0xC DOTNET_JitStress=2 DOTNET_ReadyToRun=0 DOTNET_TieredCompilation=0First build it occurred
First confirmed in scanned window: runtime-coreclr gcstress-extra build 1406727 (2026-05-04). Per the tracking issue, the regression has been present in 10 of 10 builds in the scanned window. The true origin may predate this window.
Linked issue
Fixes #127802 (convergence step — tracking issue #127802 was filed in the previous CI scan run; this PR is the corresponding test mute).
Labels:
area-CodeGen-coreclr,GCStress,JitStress,os-linux,os-osx,arch-arm64,arch-x64