Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions