dotnet / dotnet/runtime

[wasm][R2R] b68872 collides with first-pass ExInfo

Closed
#133,468 2 comments 0 reactions 0 assignees View on GitHub
arch-wasm area-ReadyToRun disabled-test os-browser
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

### Description

`JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68872` asserts during an exception filter in the browser-wasm CoreCLR ReadyToRun lane.

### Reproduction Steps

Run the `runtime-wasm-non-libtests` pipeline with ReadyToRun tests enabled on dotnet/runtime commit `ef1850bdc9e7d142888247d9bb5df3b74a7ae341` (Azure DevOps build 1588226, Helix job `2a25b357-0ff1-40a2-9fe9-5e205f73cb27`, work item `Regression_6`).

### Expected behavior

The test completes its exception-filter checks with exit code 100.

### Actual behavior

```text
Running test: JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68872/b68872/b68872.dll
inside 1st filter

Assert failure(PID 42 [0x0000002a], Thread: 1 [0x0001]): did not expect to collide with a 1st-pass ExInfo during a EH stackwalk
File: /__w/1/s/src/coreclr/vm/exceptionhandling.cpp:4273

Aborted(native code called abort())
RuntimeError: unreachable
```

### Regression?

Unknown. This was reproduced on current main during the #133305 census.

### Known Workarounds

Exclude only this IL project from browser CoreCLR ReadyToRun execution. Other `Regression_6` tests and non-R2R configurations remain enabled.

### Configuration

- dotnet/runtime commit `ef1850bdc9e7d142888247d9bb5df3b74a7ae341`
- CoreCLR browser-wasm
- Checked runtime
- ReadyToRun / crossgen2
- Node.js 23.11.1

### Other information

Tracking issue: #133305.

> [!NOTE]
> This issue was authored with GitHub Copilot.

Contributor guide

Open the contributing guide

Research direction

Reproduce JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b68872 in the runtime-wasm-non-libtests pipeline with ReadyToRun enabled. Start at src/coreclr/vm/exceptionhandling.cpp:4273 and review the exception-filter failure during the browser-wasm run. Done means the test completes with exit code 100 without the ExInfo collision assertion, while other Regression_6 configurations remain enabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, wasm
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.