Temporarily disable Windows x64 Mono MiniJIT runtime tests - #133747
Merged
Merged
Conversation
Remove only the Windows x64 MiniJIT runtime-test pipeline entry while the context-continuation failures tracked in dotnet#133702 are investigated. Preserve other Mono and Windows coverage and record the re-enable condition. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 5 pipeline(s). 11 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @akoeplinger, @matouskozak, @simonrozsival |
steveisok
approved these changes
Sep 11, 2026
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The targeted CI lane is temporarily disabled while other platform coverage remains unchanged.
Review tier: Lite
Findings: None
What changed in this PR
Temporarily disables the failing Windows x64 Mono MiniJIT runtime-test pipeline leg.
Changes:
- Removes the affected Windows x64 matrix entry.
- Adds tracking guidance for re-enablement after issue #133702 is resolved.
| File | Description |
|---|---|
eng/pipelines/runtime.yml |
Removes only the affected Windows x64 MiniJIT runtime-test job. |
lewing
enabled auto-merge (squash)
September 11, 2026 22:38
AndyAyersMS
approved these changes
Sep 11, 2026
This was referenced Sep 12, 2026
tannergooding
added a commit
that referenced
this pull request
Sep 12, 2026
## Summary Fix Windows x64 Mono MiniJIT hardware-exception handling when Windows validates exception-continuation addresses. The vectored exception handler currently resumes directly at a dynamically generated managed handler; affected processes terminate with `FAST_FAIL_SET_CONTEXT_DENIED` instead of entering the catch. Save the resolved managed handler context in existing thread-local storage and resume first at a native runtime entry point, which restores that context through Mono's existing restore trampoline. Supply the Win64 entry-stack alignment and argument home area, and keep the stack-overflow restoration context separate from the native continuation. This does not change process mitigation settings or add general CET support. Add a three-case theory covering repeated divide-by-zero, overflow, and null-reference exceptions with nested hardware exceptions in filters and finally blocks. Restore the Windows x64 MiniJIT runtime-test lane disabled by #133747 so this PR exercises the full lane. Fixes #133702. ## Validation - Built Release and Debug Mono on Windows x64. - `div2_d`, `div2_ro`, `HardwareEh`, `unhandledTester`, and `ExceptionInterop` pass with both native builds in MiniJIT mode. - The same final `HardwareEh` binary exits with `0xC0000409` on the saved unfixed runtime and passes on the fixed Release and Debug runtimes. Verified that its generated entry point invokes all three new theory cases. It also passes with the Release interpreter. - Repeated local explicit-throw measurements overlap within measurement uncertainty: baseline 2.070 us versus candidate 2.008 us. The unfixed hardware-throw benchmark terminates, so there is no valid before/after throughput ratio for that path. - Verified that `eng/pipelines/runtime.yml` exactly matches its pre-quarantine version. Full MiniJIT CI and cross-platform suites have not been run locally. > [!NOTE] > This PR was generated with GitHub Copilot. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
jtschuster
pushed a commit
to jtschuster/runtime
that referenced
this pull request
Sep 18, 2026
…3747) ## Summary Remove only the Windows x64 `AllSubsets_Mono_Minijit_RuntimeTests` entry from `eng/pipelines/runtime.yml`, temporarily suspending that leg for PR and rolling builds. The leg repeatedly fails across 46 process-level work items with `FAST_FAIL_SET_CONTEXT_DENIED`, as documented in dotnet#133702. This follows the [discussion about removing the Windows run](dotnet#133702 (comment)). A lane-level mitigation avoids scattering exclusions across unrelated tests while the systemic exception-continuation failure is investigated. Linux/macOS MiniJIT runtime tests, Windows Mono library tests, and other Windows coverage remain unchanged. An adjacent `ActiveIssue` comment records the tracking issue and the requirement to re-enable the leg once the failure is resolved. Related to dotnet#133702. **This is a temporary CI mitigation, not a product fix; the issue should remain open.** ## Validation - Parsed the original and modified YAML and confirmed the only structural difference is removal of the single Windows x64 Mono MiniJIT runtime-test matrix entry; all other pipeline nodes are unchanged. - `git diff --check` passed. - No product build or runtime tests run: this changes pipeline scheduling only. Azure Pipelines template expansion was not run locally. > [!NOTE] > This PR was generated with GitHub Copilot. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
jtschuster
pushed a commit
to jtschuster/runtime
that referenced
this pull request
Sep 18, 2026
## Summary Fix Windows x64 Mono MiniJIT hardware-exception handling when Windows validates exception-continuation addresses. The vectored exception handler currently resumes directly at a dynamically generated managed handler; affected processes terminate with `FAST_FAIL_SET_CONTEXT_DENIED` instead of entering the catch. Save the resolved managed handler context in existing thread-local storage and resume first at a native runtime entry point, which restores that context through Mono's existing restore trampoline. Supply the Win64 entry-stack alignment and argument home area, and keep the stack-overflow restoration context separate from the native continuation. This does not change process mitigation settings or add general CET support. Add a three-case theory covering repeated divide-by-zero, overflow, and null-reference exceptions with nested hardware exceptions in filters and finally blocks. Restore the Windows x64 MiniJIT runtime-test lane disabled by dotnet#133747 so this PR exercises the full lane. Fixes dotnet#133702. ## Validation - Built Release and Debug Mono on Windows x64. - `div2_d`, `div2_ro`, `HardwareEh`, `unhandledTester`, and `ExceptionInterop` pass with both native builds in MiniJIT mode. - The same final `HardwareEh` binary exits with `0xC0000409` on the saved unfixed runtime and passes on the fixed Release and Debug runtimes. Verified that its generated entry point invokes all three new theory cases. It also passes with the Release interpreter. - Repeated local explicit-throw measurements overlap within measurement uncertainty: baseline 2.070 us versus candidate 2.008 us. The unfixed hardware-throw benchmark terminates, so there is no valid before/after throughput ratio for that path. - Verified that `eng/pipelines/runtime.yml` exactly matches its pre-quarantine version. Full MiniJIT CI and cross-platform suites have not been run locally. > [!NOTE] > This PR was generated with GitHub Copilot. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Remove only the Windows x64
AllSubsets_Mono_Minijit_RuntimeTestsentry fromeng/pipelines/runtime.yml, temporarily suspending that leg for PR and rolling builds.The leg repeatedly fails across 46 process-level work items with
FAST_FAIL_SET_CONTEXT_DENIED, as documented in #133702. This follows the discussion about removing the Windows run. A lane-level mitigation avoids scattering exclusions across unrelated tests while the systemic exception-continuation failure is investigated.Linux/macOS MiniJIT runtime tests, Windows Mono library tests, and other Windows coverage remain unchanged. An adjacent
ActiveIssuecomment records the tracking issue and the requirement to re-enable the leg once the failure is resolved.Related to #133702. This is a temporary CI mitigation, not a product fix; the issue should remain open.
Validation
git diff --checkpassed.Note
This PR was generated with GitHub Copilot.