[ci-scan] Exclude Vector3Interop from GC stress (refs #127827)#127967
[ci-scan] Exclude Vector3Interop from GC stress (refs #127827)#127967github-actions[bot] wants to merge 3 commits intomainfrom
Conversation
Vector3Interop crashes with SIGSEGV under GCStress=0xC + JitStress=2 across linux-x64, linux-arm64, osx-arm64, and windows-x86. The crash occurs in the PAL signal handler during P/Invoke interop with Vector3 while GC compaction is active. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🤖 Copilot Code Review — PR #127967Note This review was generated by Copilot. Holistic AssessmentMotivation: Justified. The linked issue #127827 documents consistent SIGSEGV crashes (signal 11, exit code 22) in Approach: Correct. Using Summary: ✅ LGTM. Both Vector3Interop project files ( Detailed Findings✅ Coverage — All test project variants are addressedThere are exactly two csproj files for Vector3Interop ( ✅ Convention — Matches established GCStressIncompatible patternThe ✅ Placement — Property is in the correct PropertyGroupThe new property is placed in the first 💡 Observation — "ci: trigger checks" commitThe PR has a second commit ( Models contributing: claude-opus-4.6
|
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
| <MonoAotIncompatible>true</MonoAotIncompatible> <!-- https://github.com/dotnet/runtime/issues/90427 --> | ||
| <!-- Needed for CMakeProjectReference --> | ||
| <RequiresProcessIsolation>true</RequiresProcessIsolation> | ||
| <GCStressIncompatible>true</GCStressIncompatible> <!-- https://github.com/dotnet/runtime/issues/127827 --> |
There was a problem hiding this comment.
This should be done through ActiveIssue instead
runtime/src/tests/JIT/SIMD/Vector3Interop.cs
Line 559 in e0f1a72
There was a problem hiding this comment.
Done in 7299d83. Replaced <GCStressIncompatible>true</GCStressIncompatible> in both .csproj files with [ActiveIssue("https://github.com/dotnet/runtime/issues/127827", typeof(CoreClrConfigurationDetection), nameof(CoreClrConfigurationDetection.IsGCStressC))] on the TestEntryPoint method in Vector3Interop.cs.
… stress skip Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/62b4264c-42c0-4283-a01f-5d8409087be3 Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
…27961) ## Description Refines the `ci-failure-scan` agentic-workflow prompt to address failure modes seen in past runs: - Generic `ErrorMessage` signatures (bare test names, exception types, or truncated prefixes) that match `[PASS]` / `[SKIP]` lines for the same test and turn the KBE into a false-positive matcher against passing builds. - Malformed JSON fences (4-backtick opens, mismatched fence lengths, multiple skeletons in one body) that cause Build Analysis to silently skip the issue. - Issues filed under the `Known Build Error` label with no JSON block at all, so nothing matches future failures. - Muting PRs that link to a non-existent issue number or duplicate an in-flight fix authored by a maintainer (because the search was scoped too narrowly to `[ci-scan]` PRs). - Muting PRs opened against issues whose area owners had already provided a PR - Wrong-KBE links where the candidate KBE matched only on test name but was filed against a different architecture / failure signature. ## Changes The body of `.github/workflows/ci-failure-scan.md` is reorganized into a clear walk-through: 1. **Two-pass KBE → PR flow** is now a numbered six-step pre-flight walk (existing KBE / area tracker / muting PR / in-flight fix PR / issue resolves / mute is welcome) followed by an explicit action selection (file KBE, open muting PR, optionally open fix PR). 2. **KBE-match verification** — four questions (test, signature, OS, architecture) the agent must answer before linking an existing KBE. Wrong answers mean filing a fresh KBE rather than reusing the wrong one. 3. **Body checks** — eight explicit checks on the issue body covering the JSON fence, exact ```json opening, single-line/no-escapes signature, and a negative-match test against `[PASS]` / `[SKIP]` and build-time output. 4. **Bad → Good** examples for both signature shape (bare test name, truncated prefix, bare exception type) and platform/csproj scope (`linux-arm`-only, single-arch NativeAOT, single stress mode). 5. Coverage-discipline section trimmed to its unique contribution (pipeline ordering, per-pipeline tally, run summary). Redundant `Submit` section removed — its content is now covered by the numbered walk. ## Test run results Workflow run [25570821336](https://github.com/dotnet/runtime/actions/runs/25570821336) was dispatched against this branch (commit `3cd6399dd70`, pre-Copilot-fixup) and completed successfully (~28 min). Outputs: | # | Type | Title | Linked tracker | |---|---|---|---| | [#127963](#127963) | PR (draft) | `[ci-scan] Skip AsyncProfilerTests on Android and tvOS` | #127951 | | [#127964](#127964) | PR (draft) | `[ci-scan] Skip System.Net.Sockets IPv6 tests on Android` | #127565 | | [#127965](#127965) | Issue (KBE) | `[ci-scan] Known Build Error: System.Net.NameResolution DnsGetHostAddresses_LocalhostSubdomainWithTrailingDot fails on Android` | new | | [#127966](#127966) | Issue (regression) | `[ci-scan] Test failure: XslCompiledTransformApiTests (82 tests) on all NativeAOT legs — PlatformNotSupportedException (Reflection.Emit)` | new | | [#127967](#127967) | PR (draft) | `[ci-scan] Exclude Vector3Interop from GC stress` | #127827 | --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reasoning
Vector3Interop(both_rand_rovariants) consistently crashes with a native SIGSEGV (exit code 22, signal 11) when run underGCStress=0xC+JitStress=2+TieredCompilation=0in the gcstress-extra pipeline (definition 113). The crash occurs in the PAL signal handler during P/Invoke interop withVector3while GC compaction is active.<GCStressIncompatible>true</GCStressIncompatible>is the correct mechanism because:Vector3, which is sensitive to GC moving objects during JIT codegen stress.GCStressIncompatibleis the standard csproj-level exclusion for runtime tests incompatible with GC stress.Tradeoff: This removes Vector3Interop from gcstress-extra signal. The KBE (#127827) keeps the JIT/GC team aware; they can remove this flag once the underlying issue is fixed.
KBE verification (4-question check):
Vector3Interop_rinJIT.SIMD.0.1work item.Impact on platforms
runtime-coreclr gcstress-extra(def 113) ·linux-x64 Checked gcstress0xc_disabler2r_jitstress2·AzureLinux.3.Amd64.Open· GCStress=0xC JitStress=2 · exit code 22 (SIGSEGV)runtime-coreclr gcstress-extra(def 113) ·osx-arm64 Checked gcstress0xc_disabler2r_jitstress2·OSX.15.Arm64.Open· GCStress=0xC JitStress=2 · exit code 22 (SIGSEGV)runtime-coreclr gcstress-extra(def 113) ·linux-arm64 Checked gcstress0xc_disabler2r_jitstress2·AzureLinux.3.Arm64.Open· GCStress=0xC JitStress=2 · exit code 22 (SIGSEGV)runtime-coreclr gcstress-extra(def 113) ·windows-x86 Checked gcstress0xc_disabler2r_jitstress2·Windows.10.Amd64.Open· GCStress=0xC JitStress=2 · exit code 22Recurring: confirmed in builds 1406299 and 1406727.
Errors log
First build it occurred
First seen in scan window: build 1406299, finished 2026-05-02. Confirmed in subsequent build 1406727, finished 2026-05-04. Scanned window only — true origin may be earlier. Occurrences: ≥2 builds, 4 platforms.
Linked issue
Linked tracker: #127827
Note
🔒 Integrity filter blocked 2 items
The following items were blocked because they don't meet the GitHub integrity level.
search_issues: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".search_pull_requests: has lower integrity than agent requires. The agent cannot read data with integrity below "approved".To allow these resources, lower
min-integrityin your GitHub frontmatter: