Skip to content

Test failure: JIT/SIMD/Vector3Interop_r under GCStress=0xC+JitStress=2 (gcstress-extra) #127802

@github-actions

Description

@github-actions

Note

This issue was opened by an automated CI scanner (GitHub Copilot).

Build Information

Build: runtime-coreclr gcstress-extra #20260503.1
Build error leg or test failing: coreclr Pri1 Runtime Tests Run linux x64 checked - JIT.SIMD.0.1

Error Message

{
  "ErrorMessage": "Expression: !CREATE_CHECK_STRING(pMT && pMT->Validate())",
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}
```

## Reasoning

`JIT/SIMD/Vector3Interop_r.cmd` crashes the CoreCLR runtime with a GC assertion during test execution when run under `DOTNET_GCStress=0xC` + `DOTNET_JitStress=2`. The assertion fires in `Object::ValidateInner` (`object.cpp:548`) via the GC-marking path `Thread::DoGcStress → GcScanRoots → TGcInfoDecoder::ReportStackSlotToGC → Object::ValidateInner`. This indicates the JIT emitted incorrect GC liveness information for a SIMD method in `Vector3Interop`: the GC info declares a stack slot as an object reference when it is not (or vice-versa), causing GC validation to fail.

This is a JIT product bug — incorrect GC liveness tracking for SIMD struct fields — not a test-side issue. The test reproduces it reliably in 10 of 10 builds.

## Impact on platforms

| Pipeline | Platform/Arch | Helix Queue | Stress Mode | Exit Code |
|---|---|---|---|---|
| runtime-coreclr gcstress-extra | linux-x64 | azurelinux.3.amd64.open.rt | GCStress=0xC + JitStress=2 | 22 (native crash) |
| runtime-coreclr gcstress-extra | linux-x64 | azurelinux.3.amd64.open.rt | GCStress=0xC + JitStress=2 | 22 (native crash) |
| runtime-coreclr gcstress-extra | osx-arm64 | osx.13.arm64.open.rt | GCStress=0xC + JitStress=2 | 22 (native crash) |
| runtime-coreclr gcstress-extra | linux-arm64 | azurelinux.3.arm64.open | GCStress=0xC + JitStress=2 | 22 (native crash) |
| runtime-coreclr gcstress-extra | linux-arm64 | azurelinux.3.arm64.open | GCStress=0xC + JitStress=2 | 22 (native crash) |

## Errors log

```
22:17:28.190 Running test: JIT/SIMD/Vector3Interop_r/Vector3Interop_r.cmd
ASSERT FAILED
    Expression: !CREATE_CHECK_STRING(pMT && pMT->Validate())
    Location:   /__w/1/s/src/coreclr/vm/object.cpp:548
    Function:   ValidateInner
    Process:    1655
[createdump] Crashing thread 0836 signal 5 (0005)
[createdump] Writing crash report to file /datadisks/disk1/dumps/coredump.1655.dmp.crashreport.json
[createdump] Written 144900096 bytes (35376 pages) to core file
App Exit Code: 22
Expected: 100
Actual: 22
END EXECUTION - FAILED

First build it occurred

First confirmed in this scanned window: Build 1367230 (20260405.1). Commit at latest scan run: fcd092d376288c6c8c587217565f74107b9a3593. Occurrence count in 10-build window: 10 of 10 builds failed. This window starts at 2026-04-05; the true origin may predate it.

Recommended action

  • Assign to JIT area owners: @BruceForstall, @dotnet/jit-contrib
  • Reproduce locally: run JIT/SIMD/Vector3Interop_r.cmd with DOTNET_GCStress=0xC DOTNET_JitStress=2
  • Investigate GC liveness/GC-info encoding for Vector3 (a 12-byte struct with a 3-float layout) under JitStress=2 — the JIT may over- or under-report object references in SIMD struct fields when stress mode alters code generation choices
  • Check TGcInfoDecoder::ReportStackSlotToGC and GCInfo::gcUpdateForGCStress for incorrect slot classification of byref/pointer fields in SIMD types

Note

🔒 Integrity filter blocked 8 items

The following items were blocked because they don't meet the GitHub integrity level.

  • #112330 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #9031 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #69976 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #7208 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #119047 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #77841 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #91257 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".
  • #47242 search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".

To allow these resources, lower min-integrity in your GitHub frontmatter:

tools:
  github:
    min-integrity: approved  # merged | approved | unapproved | none

Generated by CI Outer-Loop Failure Scanner · ● 8.7M ·

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    GCStressJitStressCLR JIT issues involving JIT internal stress modesKnown Build ErrorUse this to report build issues in the .NET Helix tabagentic-workflowsarch-arm64arch-x64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'os-linuxLinux OS (any supported distro)

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions