Skip to content

[ci-scan] Test failure: JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423 crashes on browser-wasm with strerror called after runt [Content truncated due to length] #131937

Closed

Description

@github-actions

Build Information

Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1541935
Build error leg or test failing: coreclr Pri1 Runtime Tests Run browser wasm checked - JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd

Error Details

The b65423 JIT regression test fails on the runtime-coreclr outerloop browser-wasm checked leg. After catching the expected TypeLoadException (exit 100), the wasm runtime aborts during shutdown because strerror is invoked after the runtime has exited. The test then reports Expected 100 / Actual 1.

Caught TypeLoadException exception: 100
Aborted(Assertion failed: native function `strerror` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits))
(wasm/redacted)

RuntimeError: unreachable
    at abort (corerun.js)
    at assert (corerun.js)
    at strError (corerun.js)
    at new ErrnoError (corerun.js)
    at Object.getStreamChecked (corerun.js)
    at Object.getStreamFromFD (corerun.js)
    at _fd_write (corerun.js)
Expected: 100
Actual: 1
END EXECUTION - FAILED
02:10:36.782 Failed test: JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd

Observed in build 1541935 (2026-08-06) and reproduced in follow-up build 1542249 on the same leg.

Error Message

{
  "ErrorMessage": [
    "Aborted(Assertion failed: native function `strerror` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits))",
    "Failed test: JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd"
  ],
  "ErrorPattern": "",
  "BuildRetry": false,
  "ExcludeConsoleLog": false
}

Filed by ci-failure-scan (detection only). ci-failure-fix walks open [ci-scan] KBEs and either opens a small fix PR or comments here to loop in owners — it never disables the test.

Note

This issue was generated by an AI agent (ci-failure-scan Copilot workflow).

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by CI Outer-Loop Failure Scanner · 554.9 AIC · ⌖ 12.2 AIC · ⊞ 18.3K · ◷

Report

Build Repository Test Pull Request
1546439 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1546024 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545892 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545742 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545609 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545482 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545348 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1545184 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1544819 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1544116 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1543631 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1543347 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd #131866
1543091 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd
1541935 dotnet/runtime JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423/b65423/b65423.cmd

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
3 14 14

Activity

  1. added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    on Aug 6, 2026
  2. dotnet-policy-service commented on Aug 6, 2026

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
    See info in area-owners.md if you want to be subscribed.

  3. added
    arch-wasmWebAssembly architecture
    and removed
    untriagedNew issue has not been triaged by the area owner
    on Aug 6, 2026
  4. added this to the 11.0.0 milestone on Aug 6, 2026
  5. 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.

  6. JulieLeeMSFT commented on Aug 6, 2026

    @JulieLeeMSFT
    Member

    @pavelsavara, PTAL.
    cc @dotnet/wasm-contrib.

  7. self-assigned this
    on Aug 7, 2026
  8. github-actions commented on Aug 8, 2026

    @github-actions
    ContributorAuthor

    Workflow artifact: ci-fix
    Artifact kind: handoff
    Linked KBE: #131937

    Note

    AI/Copilot-generated triage note.

    This Known Build Error has no producible automated code change (reason: non-code/infra failure in the wasm runtime shutdown path — not something I can correct with a small, safe source diff, and the only test-side "fix" would be to disable the test, which this workflow must never do), so I could not open even a best-effort PR. Looping in owners so it can be fixed forward rather than muted.

    Root cause (best analysis)

    On the runtime-coreclr outerloop browser-wasm checked leg, JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b65423 catches its expected TypeLoadException (which is the intended Expected: 100 result), but the wasm runtime then aborts during shutdown:

    Caught TypeLoadException exception: 100
    Aborted(Assertion failed: native function `strerror` called after runtime exit
            (use NO_EXIT_RUNTIME to keep it alive after main() exits))
       ... at _fd_write (corerun.js)
    Expected: 100
    Actual: 1
    

    The test logic itself passes; the failure is that an Emscripten strerror/_fd_write call (a flush of stdout/stderr) runs after main() has returned and the runtime has exited, tripping the "called after runtime exit" assertion and turning exit code 100 into 1. This is a wasm host/shutdown ordering issue (a late fd_write on a torn-down runtime), not a JIT codegen defect and not a defect in the test body — so no source-level test change is appropriate, and disabling the test is out of scope for this workflow.

    Evidence

    Suggested reviewers / area contacts

    • Area owners (arch-wasm): @lewing, @pavelsavara

    A fix would likely involve keeping the wasm runtime alive long enough to flush stdio during shutdown (e.g. the NO_EXIT_RUNTIME / late-fd_write handling in the CoreCLR wasm host corerun.js glue), so the post-exit strerror assertion no longer fires after a passing test.

    Warning

    Firewall blocked 1 domain

    The following domain was blocked by the firewall during workflow execution:

    • awmgmcpg

    To allow these domains, add them to the network.allowed list in your workflow frontmatter:

    network:
      allowed:
        - defaults
        - "awmgmcpg"

    See Network Configuration for more information.

    Generated by CI Outer-Loop Failure Fixer · 400.7 AIC · ⌖ 18.4 AIC · ⊞ 17.1K · ◷

  9. locked and limited conversation to collaborators on Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Known Build ErrorUse this to report build issues in the .NET Helix tabagentic-workflowsarch-wasmWebAssembly architecturearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions