dotnet / dotnet/runtime

[wasm][R2R] variant static interface dispatch has signature mismatch

Open
#133,466 4 comments 0 reactions 1 assignee Claimed by @davidwrighton 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

`Loader/classloader/StaticVirtualMethods/InterfaceVariance/ComplexHierarchyPositive` traps during variant static-interface dispatch 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 `Loader`).

### Expected behavior

`ComplexHierarchyPositive` completes its variant static-interface dispatch checks.

### Actual behavior

```text
Running test: Loader/classloader/StaticVirtualMethods/InterfaceVariance/ComplexHierarchyPositive/ComplexHierarchyPositive.dll
Test cases
---FooBar
TestTheFooString FooBar Base IFoo
RuntimeError: null function or function signature mismatch
at ComplexHierarchyPositive_VariantStaticInterfaceDispatchRegressionTest_Test__GetTheFooStringInstance
at WasmInterpreterToR2RThunk(iip)
at WasmR2RToInterpreterThunk(viip)
at WasmDelayLoadHelper->EagerImports->SignaturePointer_ReadyToRunHelper_DelayLoad_MethodCall
```

### Regression?

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

### Known Workarounds

Skip only this test method for browser CoreCLR ReadyToRun. Mono, WASI, non-browser, and non-R2R coverage 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

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.