G
YouTube TikTok Games
Skip to content

Install CoreCLR WASM runtime pack at the local package version - #5359

Merged
DrewScoggins merged 1 commit into
mainfrom
lewing-fix-wasm-coreclr-runtime-pack-version
Nov 11, 2026
Merged

DrewScoggins merged 1 commit into
mainfrom
lewing-fix-wasm-coreclr-runtime-pack-version

Conversation

@lewing

@lewing lewing commented Nov 10, 2026

Copy link
Copy Markdown
Member

The CoreCLR WASM perf jobs (coreclr_v8, coreclr_r2r_v8, coreclr_r2r_composite_v8) have been intermittently failing a whole job at a time: all 15 work items in the job fail with:

error NETSDK1112: The runtime pack for Microsoft.NETCore.App.Runtime.browser-wasm was not downloaded.

Cause

build_wasm_coreclr_payload picked the runtime pack's install version from os.listdir(dotnet/packs/Microsoft.NETCore.App.Ref)[0]. The dotnet-none SDK in the BrowserWasmCoreCLR artifact contains two Ref versions: the bootstrap SDK's bundled one (12.0.0-alpha.1.26528.120) and the locally built 12.0.0-ci. The result depended on filesystem order. When it picked the bundled version, PERFLAB_WASM_PACKAGE_VERSION=12.0.0-ci couldn't resolve the runtime pack, because WasmOverridePacks.targets removes its PackageDownload.

In the internal dotnet-runtime-perf runs I checked, the job log line Installed CoreCLR browser-wasm runtime pack version ... matches the outcome every time:

Run Job Installed version Result
main 3130649 coreclr_v8 12.0.0-ci 15/15 passed
main 3130649 coreclr_r2r_v8 12.0.0-ci 15/15 passed
main 3130649 coreclr_r2r_composite_v8 12.0.0-alpha.1.26528.120 0/15 (NETSDK1112)
3132101 (manual) all three 12.0.0-alpha.1.26528.120 0/15 each (NETSDK1112)

Fix

Install the runtime pack under the local package version detected from built-nugets, which run setup exports as PERFLAB_WASM_PACKAGE_VERSION. This works for -ci, -dev and official versions.

Validation

  • python -m pytest -q scripts/tests/test_wasm_coreclr_r2r.py: 130 passed.
  • test_coreclr_payload_detects_local_toolchain_package_version now also checks that the runtime pack is installed only under the local version. It fails on the previous code (['11.0.0-rc.1.26431.109'] == ['11.0.0-ci']).
  • Not yet validated in a perf pipeline run.

Note

This PR description was written with GitHub Copilot.

build_wasm_coreclr_payload picked the runtime pack version from
os.listdir(packs/Microsoft.NETCore.App.Ref)[0]. The BrowserWasmCoreCLR SDK
now ships both its bundled Ref version and the locally built 12.0.0-ci Ref,
so the choice depended on filesystem order. When it picked the bundled
version, PERFLAB_WASM_PACKAGE_VERSION=12.0.0-ci could not resolve the
runtime pack and every work item in the job failed with NETSDK1112.

Install the pack under the local package version instead, which is the
version run setup exports as PERFLAB_WASM_PACKAGE_VERSION.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 10, 2026 21:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the change to use the selected local runtime-pack version.

No open issues 🎉

What changed in this PR

Makes CoreCLR WASM runtime-pack installation deterministic by using the local package version selected by PERFLAB_WASM_PACKAGE_VERSION, addressing intermittent NETSDK1112 failures in performance jobs.

Changes:

  • Replaces reference-pack directory enumeration with the detected local package version.
  • Extends regression coverage to verify the runtime pack and its manifest are staged only under the expected local version.
File Description
scripts/​tests/​test_wasm_coreclr_r2r.py Adds assertions for the runtime-pack version directory and copied manifest.
scripts/​build_runtime_payload.py Installs and logs the runtime pack using local_package_version.

Review effort: Balanced

@DrewScoggins DrewScoggins left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@DrewScoggins
DrewScoggins enabled auto-merge (squash) November 11, 2026 01:00
@DrewScoggins
DrewScoggins merged commit 5bbe5c8 into main Nov 11, 2026
73 checks passed
@DrewScoggins
DrewScoggins deleted the lewing-fix-wasm-coreclr-runtime-pack-version branch November 11, 2026 01:59
LoopedBard3 pushed a commit to LoopedBard3/performance that referenced this pull request Nov 11, 2026
Retain the cohort identity fix and regression from dotnet#5359. Keep the remaining archive staging, required metadata, and pre/post SDK collision protection with separate focused tests.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants