You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[wasi][R2R] Runtime test failures: prestub assert in self_override5, uninitialized element in overflow01_div #134949
With the Helix composition fixed, the CoreCLR WASI ReadyToRun runtime test lane (CoreCLR_WASI_RuntimeTests_R2R_CG2, Checked) passes 24 of its 26 work items. The other two fail:
Loader: a Checked runtime assertion while running Loader/classloader/MethodImpl/self_override5/self_override5.dll:
In MyFoo::DoBarOverride
ASSERT FAILED
Expression: !ShouldCallPrestub()
Location: src/coreclr/vm/prestub.cpp:2702
Function: DoPrestub
jit64_5:wasm trap: uninitialized element (a call through an unset table slot) while running _rtchecks_rtchecks::overflow01_div.OVFTest.TestEntryPoint():
self_override5 (prestub assert): this one is a MethodImpl bug that occurs whether CoreLib is R2R or interpreted. #136050 fixes it.
uninitialized element traps (overflow0[1-4]_div, and more tests now that out-of-process tests run on WASI in #136047): these happen only when R2R code runs against an interpreted CoreLib. A JIT helper implemented by a managed CoreLib method (for example CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE → RuntimeTypeHandle.GetRuntimeTypeFromHandle) then needs an R2R-to-interpreter thunk with the helper's signature. Crossgen2 emits thunks only for call-site signatures, so a small composite can lack one, and the call traps on an empty table slot. The WASI R2R runtime-test lane runs every test this way: the composite contains only the test assemblies, and CoreLib is interpreted.
Following review on #136050, R2R code outside CoreLib requires an R2R CoreLib that contains all JIT helpers. The interpreted-CoreLib configuration is unsupported, so the fix belongs in the test lane, not crossgen2.
Plan: compose Core_Root's precompiled System.Private.CoreLib into each WASI test host alongside the test composite. A prototype gets HelloWorld running with both images R2R-initialized and no trap. Until that lands, the affected tests stay ActiveIssued against this issue for WASI R2R only, and still run in the interpreter lane.
A crossgen2 thunk fix confirmed the cause for overflow0[1-4]_div, compares, NegMulOrDivToConst, the TSAmbiguities HelloWorld tests, tailcall, and ldtoken/{byrefs,modifiers}. The other quarantined tests fail with the same signature but haven't been re-run that way yet; enabling them under the new lane will confirm the rest.
Note
This comment was drafted with the help of GitHub Copilot.
Activity
dotnet-policy-service commentedon Sep 30, 2026
Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.
dotnet-policy-service commentedon Sep 30, 2026
Tagging subscribers to this area: @dotnet/crossgen-contrib
See info in area-owners.md if you want to be subscribed.
[wasi] Quarantine R2R runtime test crashes on WASI
Quarantine browser-wasm R2R outerloop failures
[wasi] Quarantine the remaining overflow div runtime tests under R2R
[wasm][CoreCLR] Add browser_wasm R2R_CG2 leg to runtime-coreclr outer…
[wasi] Quarantine R2R runtime test crashes on WASI
[wasi] Quarantine the remaining overflow div runtime tests under R2R
[wasi] Quarantine R2R runtime test crashes on WASI
[wasi] Quarantine the remaining overflow div runtime tests under R2R
[wasi] Quarantine R2R runtime test crashes on WASI
[wasi] Quarantine the remaining overflow div runtime tests under R2R
[wasi] Quarantine R2R runtime test crashes on WASI
[wasi] Quarantine the remaining overflow div runtime tests under R2R
[wasm][R2R] Fix calls through MethodImpl-redirected slots on portable…
lewing commentedon Oct 20, 2026
Status update on the remaining failures.
self_override5(prestub assert): this one is a MethodImpl bug that occurs whether CoreLib is R2R or interpreted. #136050 fixes it.uninitialized elementtraps (overflow0[1-4]_div, and more tests now that out-of-process tests run on WASI in #136047): these happen only when R2R code runs against an interpreted CoreLib. A JIT helper implemented by a managed CoreLib method (for exampleCORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE→RuntimeTypeHandle.GetRuntimeTypeFromHandle) then needs an R2R-to-interpreter thunk with the helper's signature. Crossgen2 emits thunks only for call-site signatures, so a small composite can lack one, and the call traps on an empty table slot. The WASI R2R runtime-test lane runs every test this way: the composite contains only the test assemblies, and CoreLib is interpreted.Following review on #136050, R2R code outside CoreLib requires an R2R CoreLib that contains all JIT helpers. The interpreted-CoreLib configuration is unsupported, so the fix belongs in the test lane, not crossgen2.
Plan: compose Core_Root's precompiled
System.Private.CoreLibinto each WASI test host alongside the test composite. A prototype gets HelloWorld running with both images R2R-initialized and no trap. Until that lands, the affected tests stayActiveIssued against this issue for WASI R2R only, and still run in the interpreter lane.A crossgen2 thunk fix confirmed the cause for
overflow0[1-4]_div,compares,NegMulOrDivToConst, theTSAmbiguitiesHelloWorld tests,tailcall, andldtoken/{byrefs,modifiers}. The other quarantined tests fail with the same signature but haven't been re-run that way yet; enabling them under the new lane will confirm the rest.Note
This comment was drafted with the help of GitHub Copilot.
Run out-of-process runtime tests on WASI (#136047)
Don't document interpreted RelaxedSimd.IsSupported as intended behavior