Skip to content

[wasi][R2R] Runtime test failures: prestub assert in self_override5, uninitialized element in overflow01_div #134949

Open

Description

@lewing

Description

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():

    0: corerun!rtchecks_overflow01_div_OVFTest__Test_long
    1: corerun!WasmDelayLoadHelper->EagerImports->SignaturePointer_ReadyToRunHelper_DelayLoad_MethodCall(Kind:DelayLoadHelper,Sig:llp)
    2: corerun!rtchecks_overflow01_div_OVFTest___c___TestEntryPoint_b__10_6
    3: corerun!WasmInterpreterToR2RThunk(vTp)

In both work items the crash stops the merged runner, so the remaining tests in it do not report results.

Seen on #134813 (build 1617446, Helix job cc210b79-6094-4d51-83e7-3eea73c59e1f).

Note

This issue was drafted with the help of GitHub Copilot.

Activity

  1. dotnet-policy-service commented on Sep 30, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
    See info in area-owners.md if you want to be subscribed.

  2. added
    os-wasiRelated to WASI variant of arch-wasm
    on Sep 30, 2026
  3. added this to the 12.0.0 milestone on Sep 30, 2026
  4. removed
    untriagedNew issue has not been triaged by the area owner
    on Sep 30, 2026
  5. dotnet-policy-service commented on Sep 30, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @dotnet/crossgen-contrib
    See info in area-owners.md if you want to be subscribed.

  6. added
    disabled-testThe test is disabled in source code against the issue
    on Oct 1, 2026
  7. self-assigned this
    on Oct 19, 2026
  8. lewing commented on Oct 20, 2026

    @lewing
    MemberAuthor

    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 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

arch-wasmWebAssembly architecturearea-ReadyToRundisabled-testThe test is disabled in source code against the issueos-wasiRelated to WASI variant of arch-wasm

Type

No type

Projects

  • Status
    No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions