Fix stackoverflowtester to skip ARM32 in TestStackOverflowLargeFrameMainThread#126525
Fix stackoverflowtester to skip ARM32 in TestStackOverflowLargeFrameMainThread#126525
Conversation
|
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries |
…ainThread Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/b03cff4a-fab7-4939-9a00-d4a6c26d1139 Co-authored-by: mangod9 <61718172+mangod9@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the stack overflow test skip logic so TestStackOverflowLargeFrameMainThread is skipped on ARM32 Unix (matching the already-correct secondary-thread variant) to avoid reliable CI failures due to runtime stack overflow detection limitations.
Changes:
- Add
Architecture.Armto the Unix/macOS skip guard forTestStackOverflowLargeFrameMainThread. - Update the explanatory comments for the skip block.
|
/ba-g Build-analysis hung, this is only disabling a test. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Note This review was generated by Copilot. 🤖 Copilot Code Review — PR #126525Holistic AssessmentMotivation: Justified. Approach: Correct. The fix follows the existing pattern in the file: an inline architecture + OS check with an early Summary: ✅ LGTM. Small, focused consistency fix. The code change is correct (parenthesization verified), the comments are improved, and the approach matches the existing pattern already present in Detailed Findings✅ Correctness — Skip condition matches sibling methodThe ✅ Scope — Only large-frame tests need the ARM32 skipThe small-frame tests ( ✅ Comment clarity — Improved attribution of skip reasonsThe old comments lumped all architectures under "Disabled on Unix ARM64, X64, RISCV64, and LoongArch64" with a single issue reference. The new comments correctly separate by root cause:
This matches the comments in the secondary-thread method exactly. 💡 Observation — Large-frame tests now skip on all mainstream Unix architectures (pre-existing)With ARM, ARM64, X64, RiscV64, and LoongArch64 all skipped, the large-frame stack overflow tests only run on Windows (minus x86, skipped by
|
main PR
Description
TestStackOverflowLargeFrameMainThreadwas missingArchitecture.Armin its Unix skip guard, causing it to run on ARM32 where it reliably fails. On ARM32, large-frame methods (65KB/frame) cause the JIT to probe stack pages without moving SP, so the guard page fault lands >8KB from SP — outside the runtime's 2-page detection window insignal.cpp. This produces SIGSEGV (exit0x8B/139) instead of the expected SIGABRT (exit0x86/134).TestStackOverflowLargeFrameSecondaryThreadalready correctly includedArchitecture.Armin its skip. This change makes the main-thread version consistent:Customer Impact
No customer impact — this is a test-only fix. The underlying ARM32 stack overflow detection limitation (tracked in #110173) remains; this just prevents a spurious CI failure.
Regression
Not a regression in product behavior. The test skip was simply omitted from
TestStackOverflowLargeFrameMainThreadwhile it was correctly applied to the secondary-thread variant.Testing
The fix aligns the skip condition with the already-correct
TestStackOverflowLargeFrameSecondaryThread. No behavior change on non-ARM32 platforms.Risk
Minimal. Test-only change that adds an early-return on ARM32 Unix, matching existing patterns in the same file.
Package authoring no longer needed in .NET 9
IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.