Skip to content

fix(runners): pin Windows WSL2 kernel to 5.15.167.4 (WSL 2.4.13) — unblock msi-e2e-tests - #1114

Merged
coderbirju merged 1 commit into
mainfrom
pin-windows-wsl-kernel
Sep 4, 2026
Merged

coderbirju merged 1 commit into
mainfrom
pin-windows-wsl-kernel

Conversation

@coderbirju

Copy link
Copy Markdown
Contributor

Unblock-first. This restores CI green immediately by pinning a known-good WSL/kernel. Root-causing why kernel 6.18.x breaks additional_disk is tracked separately (see Follow-up).

Problem

The Windows runner every-boot startup script (scripts/windows-runner-user-data.yaml) runs an unpinned wsl --update. wsl --update has no version flag — it floats the bundled WSL2 kernel to whatever is newest at boot. Runners drifted from kernel 5.15.167.4 up to 6.18.x, and the newer kernel regressed the finch additional_disk e2e spec (the container task does not survive vm remove + re-init on 6.18).

Evidence

  • CI job msi-e2e-tests (workflow build-and-test-msi, in runfinch/finch) fails deterministically.
  • Failure surfaces in the additional_disk spec on kernel 6.18.33.2.
  • Last green run was on kernel 5.15.167.4 (shipped by WSL 2.4.13).

Fix

Replace wsl --update with a pinned standalone WSL 2.4.13 MSI install:

  • Download wsl.2.4.13.0.x64.msi from the microsoft/WSL 2.4.13 release.
  • SHA256 guard: verify A327590770BD334878FB47113355AA07CFCF056ACDC08F5E5646A2418C66D721 before install; throw on mismatch.
  • Install silently via msiexec /i ... /quiet.
  • Dollar-vars inside the here-string are escaped (backtick-$) so they evaluate at boot, not at CDK ExpandString write time.

Scope

Infrastructure CI-runner user-data only. No change to the finch product, installer, or MSI. +11 / -1 in one file.

Validation

  • npm ci ✓
  • npm run build (tsc) ✓
  • npm test (jest unit, 12 suites / 15 tests) ✓
  • cdk synth — context-blocked locally (needs AWS account credentials for context lookups); not run against AWS. Repo PR checks will exercise synth/build.

CI limitation (important)

This infra repo's PR checks (build / synth / lint) validate the CDK change only. They do not re-run finch msi-e2e-tests — that lives in runfinch/finch and only exercises real Windows runners after this merges and the runner fleet recycles onto the new user-data.

Follow-up

Root-causing the 6.18 kernel behavior (the actual additional_disk regression mechanism) is tracked separately. This PR is the unblock; the deeper fix / unpin can follow once 6.18 is understood.

…nblock msi-e2e-tests

The Windows runner every-boot startup script ran an unpinned `wsl --update`,
which has no version flag and floats the WSL2 kernel to whatever is newest at
boot. It drifted to kernel 6.18.x, which regressed the finch `additional_disk`
e2e spec (the container task does not survive vm remove + re-init on 6.18),
deterministically failing the `msi-e2e-tests` job in build-and-test-msi.

Replace `wsl --update` with a pinned standalone WSL 2.4.13 MSI install (bundles
kernel 5.15.167.4, the last CI-green version), download-then-verify against a
SHA256 guard before running msiexec. Dollar-vars in the here-string are escaped
(backtick-$) so they evaluate at boot rather than at CDK ExpandString time.

Infra CI-runner user-data only; no finch product/installer change.

Signed-off-by: Arjun Yogidas <arjunry@amazon.com>
@coderbirju
coderbirju force-pushed the pin-windows-wsl-kernel branch from 6098283 to f2ddf7b Compare September 4, 2026 06:05
@coderbirju
coderbirju marked this pull request as ready for review September 4, 2026 06:34
@coderbirju
coderbirju requested a review from a team as a code owner September 4, 2026 06:34

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

LGTM for now but I would like to see if there's a way to automatically update the kernel via dependabot-esque mechanisms

@coderbirju
coderbirju merged commit f495b62 into main Sep 4, 2026
6 checks passed
@coderbirju
coderbirju deleted the pin-windows-wsl-kernel branch September 4, 2026 17:14
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