Skip to content

[wasm R2R] Assert failure: codeLength > 0 #131924

Description

@VincentBu

Failed in: runtime-coreclr outerloop 20260805.6

Failed tests:

coreclr browser wasm Checked @ (Ubuntu.2604.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:0be8725e08b6d0f58ec0290f3f3b70c449123e78b2b33853e9049df84b912fa8
- readytorun/fieldlayout/fieldlayout/fieldlayout.cmd
coreclr browser wasm Checked no_tiered_compilation @ (Ubuntu.2604.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:0be8725e08b6d0f58ec0290f3f3b70c449123e78b2b33853e9049df84b912fa8
- readytorun/fieldlayout/fieldlayout/fieldlayout.cmd

Error message:

Out-of-process wrapper failed with exit code 1.
BEGIN EXECUTION
in takeLock
02:12:30
Response file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm.rsp
/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/IL-CG2/fieldlayout.dll
/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/IL-CG2/TestLibrary.dll
-o:/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm
-O
--targetarch:wasm
--targetos:browser
--verify-type-and-field-layout
--method-layout:random
--codegenopt:JitWasmNyiToR2RUnsupported=1
-r:/root/helix/work/correlation/System.*.dll
-r:/root/helix/work/correlation/Microsoft.*.dll
-r:/root/helix/work/correlation/xunit.*.dll
-r:/root/helix/work/correlation/mscorlib.dll
-r:/root/helix/work/correlation/netstandard.dll
Running CrossGen2:  /root/helix/work/correlation/crossgen2/crossgen2 @/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm.rsp  --composite   -f wasm
Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm
Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm
Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm
Running R2RDump:  dotnet /root/helix/work/correlation/R2RDump/R2RDump.dll --header --sc --in /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm --out /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm.r2rdump --val --rp /root/helix/work/correlation
Running R2RDump:  dotnet /root/helix/work/correlation/R2RDump/R2RDump.dll --header --sc --in /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm --out /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm.r2rdump --val --rp /root/helix/work/correlation
02:12:31
in ReleaseLock
in takeLock
in ReleaseLock
in takeLock
Running with node
CORE_ROOT: /root/helix/work/correlation
ExePath: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.dll
CLRTestExecutionArguments:
node version: v23.11.1
Timeout in ms: 900000
Running: node --experimental-wasm-exnref --stack-size=8192 /root/helix/work/correlation/corerun.js -c /root/helix/work/correlation -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false -p System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.dll
ASSERT FAILED
	Expression: codeLength > 0
	Location:   /__w/1/s/src/coreclr/vm/eetwain.cpp:1634
	Function:   GetFunctionSize
	Process:    42
Frame (InlinedCallFrame): 0x4fe9dc
    Skipping 0x4fe9dc
Frame (PrestubMethodFrame): 0x4fec5c
    Skipping 0x4fec5c
Frame (PrestubMethodFrame): 0x4fef3c
    Skipping 0x4fef3c
Frame (PrestubMethodFrame): 0x4ff20c
    Skipping 0x4ff20c
Frame (PrestubMethodFrame): 0x4ff4ec
    Skipping 0x4ff4ec
ASSERT FAILED
	Expression: IsExecutingOnAltStack() || (curSP <= m_pFrame && m_pFrame < m_CacheStackBase) || m_pFrame == (Frame*) -1
	Location:   /__w/1/s/src/coreclr/vm/threads.h:1134
	Function:   GetFrame
	Process:    42
Frame (InlinedCallFrame): 0x4fe9dc
    Skipping 0x4fe9dc
Frame (PrestubMethodFrame): 0x4fec5c
    Skipping 0x4fec5c
Frame (PrestubMethodFrame): 0x4fef3c
    Skipping 0x4fef3c
Frame (PrestubMethodFrame): 0x4ff20c
    Skipping 0x4ff20c
Frame (PrestubMethodFrame): 0x4ff4ec
    Skipping 0x4ff4ec
Aborted(native code called abort())
wasm://wasm/01bde406:1


RuntimeError: unreachable
    at wasm://wasm/01bde406:wasm-function[18587]:0x5d4574
    at abort (file:///root/helix/work/correlation/corerun.js:482:5)
    at __abort_js (file:///root/helix/work/correlation/corerun.js:6267:24)
    at wasm://wasm/01bde406:wasm-function[101]:0x9afd
    at wasm://wasm/01bde406:wasm-function[190]:0xf666
    at wasm://wasm/01bde406:wasm-function[252]:0x10be6
    at wasm://wasm/01bde406:wasm-function[256]:0x10

Stack trace:

   at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 135
   at Xunit.Assert.True(Boolean condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 117
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String assemblyPath, String testPathPrefix) in /__w/1/s/src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs:line 285
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix) in /__w/1/s/src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs:line 84
   at Program.<<Main>$>g__TestExecutor7|0_8(StreamWriter tempLogSw, StreamWriter statsCsvSw, StreamWriter outOfProcessPlanWriter, <>c__DisplayClass0_0&)

Activity

  1. added
    blocking-outerloopBlocking the 'runtime-coreclr outerloop' and 'runtime-libraries-coreclr outerloop' runs
    on Aug 6, 2026
  2. dotnet-policy-service commented on Aug 6, 2026

    @dotnet-policy-service
    Contributor

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

  3. changed the title [-]Assert failure: codeLength > 0[/-] [+][wasm R2R] Assert failure: codeLength > 0[/+] on Aug 6, 2026
  4. self-assigned this
    on Aug 7, 2026
  5. AndyAyersMS commented on Aug 7, 2026

    @AndyAyersMS
    Member

    Leaf methods have no VIP updates so were reporting in unwind as having zero length. But this messes up range-based IP lookups, as now multiple functions can "cover" a given global VIP ... one nonzero-length and some number of zero length.

    Fix is to never report a function as zero length. It is ok to over-estimate the VIP range. Will have a PR up shortly

    No, that's not the problem, we already report nonzero length. The problem lies elsewhere. It has something to do with having composite images in the process -- seems like intra-composite calls are bypassing GetEntryPoint and so not setting up the right runtime VIP data.

    Probably best to leave this one for @davidwrighton's return.

  6. added this to the 11.0.0 milestone on Aug 7, 2026
  7. removed
    untriagedNew issue has not been triaged by the area owner
    on Aug 7, 2026
  8. VincentBu commented on Aug 10, 2026

    @VincentBu
    ContributorAuthor

    Failed in: runtime-coreclr outerloop 20260809.3

    Failed tests:

    coreclr browser wasm Checked @ (Ubuntu.2604.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:0be8725e08b6d0f58ec0290f3f3b70c449123e78b2b33853e9049df84b912fa8
    - readytorun/fieldlayout/fieldlayout/fieldlayout.cmd
    coreclr browser wasm Checked no_tiered_compilation @ (Ubuntu.2604.Amd64.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:0be8725e08b6d0f58ec0290f3f3b70c449123e78b2b33853e9049df84b912fa8
    - readytorun/fieldlayout/fieldlayout/fieldlayout.cmd
    
    

    Error message:

    Out-of-process wrapper failed with exit code 1.
    BEGIN EXECUTION
    in takeLock
    19:17:25
    Response file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm.rsp
    /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/IL-CG2/fieldlayout.dll
    /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/IL-CG2/TestLibrary.dll
    -o:/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm
    -O
    --targetarch:wasm
    --targetos:browser
    --verify-type-and-field-layout
    --method-layout:random
    --codegenopt:JitWasmNyiToR2RUnsupported=1
    -r:/root/helix/work/correlation/System.*.dll
    -r:/root/helix/work/correlation/Microsoft.*.dll
    -r:/root/helix/work/correlation/xunit.*.dll
    -r:/root/helix/work/correlation/mscorlib.dll
    -r:/root/helix/work/correlation/netstandard.dll
    Running CrossGen2:  /root/helix/work/correlation/crossgen2/crossgen2 @/root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm.rsp  --composite   -f wasm
    Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/composite-r2r.wasm
    Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm
    Emitting R2R Wasm file: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm
    Running R2RDump:  dotnet /root/helix/work/correlation/R2RDump/R2RDump.dll --header --sc --in /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm --out /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.wasm.r2rdump --val --rp /root/helix/work/correlation
    Running R2RDump:  dotnet /root/helix/work/correlation/R2RDump/R2RDump.dll --header --sc --in /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm --out /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/TestLibrary.wasm.r2rdump --val --rp /root/helix/work/correlation
    19:17:25
    in ReleaseLock
    in takeLock
    in ReleaseLock
    in takeLock
    Running with node
    CORE_ROOT: /root/helix/work/correlation
    ExePath: /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.dll
    CLRTestExecutionArguments:
    node version: v23.11.1
    Timeout in ms: 900000
    Running: node --experimental-wasm-exnref --stack-size=8192 /root/helix/work/correlation/corerun.js -c /root/helix/work/correlation -p System.Reflection.Metadata.MetadataUpdater.IsSupported=false -p System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization=true /root/helix/work/workitem/e/readytorun/fieldlayout/fieldlayout/fieldlayout.dll
    ASSERT FAILED
    	Expression: codeLength > 0
    	Location:   /__w/1/s/src/coreclr/vm/eetwain.cpp:1634
    	Function:   GetFunctionSize
    	Process:    42
    Frame (InlinedCallFrame): 0x4fe9dc
        Skipping 0x4fe9dc
    Frame (PrestubMethodFrame): 0x4fec5c
        Skipping 0x4fec5c
    Frame (PrestubMethodFrame): 0x4fef3c
        Skipping 0x4fef3c
    Frame (PrestubMethodFrame): 0x4ff20c
        Skipping 0x4ff20c
    Frame (PrestubMethodFrame): 0x4ff4ec
        Skipping 0x4ff4ec
    ASSERT FAILED
    	Expression: IsExecutingOnAltStack() || (curSP <= m_pFrame && m_pFrame < m_CacheStackBase) || m_pFrame == (Frame*) -1
    	Location:   /__w/1/s/src/coreclr/vm/threads.h:1134
    	Function:   GetFrame
    	Process:    42
    Frame (InlinedCallFrame): 0x4fe9dc
        Skipping 0x4fe9dc
    Frame (PrestubMethodFrame): 0x4fec5c
        Skipping 0x4fec5c
    Frame (PrestubMethodFrame): 0x4fef3c
        Skipping 0x4fef3c
    Frame (PrestubMethodFrame): 0x4ff20c
        Skipping 0x4ff20c
    Frame (PrestubMethodFrame): 0x4ff4ec
        Skipping 0x4ff4ec
    Aborted(native code called abort())
    wasm://wasm/01bde4b6:1
    
    
    RuntimeError: unreachable
        at wasm://wasm/01bde4b6:wasm-function[18584]:0x5d4650
        at abort (file:///root/helix/work/correlation/corerun.js:482:5)
        at __abort_js (file:///root/helix/work/correlation/corerun.js:6267:24)
        at wasm://wasm/01bde4b6:wasm-function[101]:0x9af9
        at wasm://wasm/01bde4b6:wasm-function[190]:0xf662
        at wasm://wasm/01bde4b6:wasm-function[252]:0x10be2
        at wasm://wasm/01bde4b6:wasm-function[256]:0x10
    

    Stack trace:

       at Xunit.Assert.True(Nullable`1 condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 135
       at Xunit.Assert.True(Boolean condition, String userMessage) in /_/src/arcade/src/Microsoft.DotNet.XUnitAssert/src/BooleanAsserts.cs:line 117
       at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String assemblyPath, String testPathPrefix) in /__w/1/s/src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs:line 285
       at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String assemblyPath, String testPathPrefix) in /__w/1/s/src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs:line 84
       at Program.<<Main>$>g__TestExecutor7|0_8(StreamWriter tempLogSw, StreamWriter statsCsvSw, StreamWriter outOfProcessPlanWriter, <>c__DisplayClass0_0&)
    
  9. added a commit that references this issue on Aug 12, 2026
    6190b8e
  10. added a commit that references this issue on Aug 19, 2026
    fa5fd36
  11. added a commit that references this issue on Aug 19, 2026
    28b604a
  12. locked and limited conversation to collaborators on Sep 12, 2026
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-ReadyToRunblocking-outerloopBlocking the 'runtime-coreclr outerloop' and 'runtime-libraries-coreclr outerloop' runs

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions