fix: pin Ubuntu 22.04 LTS kernel to 5.15.0-1102-azure#7972
Conversation
Kernel 5.15.0-1103-azure has a regression on Ubuntu 22.04. This change pins the VHD build to install 5.15.0-1102-azure instead. The existing else branch installed meta-packages (linux-image-azure-lts-22.04) which always resolve to the latest kernel. A new elif for Ubuntu 22.04 installs version-pinned packages (linux-image-5.15.0-1102-azure, etc.) while 24.04+ continues using meta-packages. The dist-upgrade step still transiently installs 1103, but the kernel block purges all kernel packages and reinstalls the pinned 1102 version.
7656846 to
2a51ccc
Compare
There was a problem hiding this comment.
Pull request overview
This PR addresses a kernel regression in Ubuntu 22.04 by pinning the VHD build to kernel version 5.15.0-1102-azure instead of tracking the latest meta-package (which would install 5.15.0-1103-azure). The PR also includes unrelated test configuration changes for MA35D GPU tests.
Changes:
- Pinned Ubuntu 22.04 non-CVM, non-FIPS VHD builds to kernel 5.15.0-1102-azure to avoid a regression in 5.15.0-1103-azure
- Modified MA35D e2e tests to use CacheDisk placement instead of the default ResourceDisk placement
Reviewed changes
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| vhdbuilder/packer/pre-install-dependencies.sh | Added conditional branch to install pinned kernel version 5.15.0-1102-azure for Ubuntu 22.04 instead of latest LTS meta-package |
| e2e/scenario_test.go | Modified MA35D test configurations to use CacheDisk placement and adjusted formatting of Location field |
| elif [ "${UBUNTU_RELEASE}" = "22.04" ]; then | ||
| # Pin to 5.15.0-1102-azure to avoid regression in 5.15.0-1103-azure | ||
| KERNEL_IMAGE="linux-image-5.15.0-1102-azure" | ||
| KERNEL_PACKAGES=( | ||
| "linux-image-5.15.0-1102-azure" | ||
| "linux-tools-5.15.0-1102-azure" | ||
| "linux-cloud-tools-5.15.0-1102-azure" | ||
| "linux-headers-5.15.0-1102-azure" | ||
| "linux-modules-extra-5.15.0-1102-azure" | ||
| ) | ||
| echo "Installing pinned LTS kernel 5.15.0-1102-azure for Ubuntu 22.04 (regression in 1103)" |
There was a problem hiding this comment.
The Ubuntu 22.04 kernel pin affects all non-CVM, non-FIPS Ubuntu 22.04 VHD builds but lacks corresponding e2e test coverage. Since this is a temporary workaround for a kernel regression that could cause node failures in production, there should be at least one Ubuntu 22.04 e2e test that validates the kernel version is actually 5.15.0-1102-azure.
Consider adding a validator that checks the output of 'uname -r' to verify the pinned kernel is installed. This is especially important since the PR description notes this will be reverted once the upstream regression is fixed, and having test coverage will make it obvious when the pin can be safely removed.
Problem
Kernel
5.15.0-1103-azurehas a regression on Ubuntu 22.04.Fix
Pin VHD build to install
5.15.0-1102-azureinstead of the latest meta-package.What changed
elifbranch for Ubuntu 22.04 inpre-install-dependencies.shthat installs version-pinned packages instead of meta-packages (linux-image-azure-lts-22.04)Pinned packages (all 5 match the original meta-package set)
linux-image-azure-lts-22.04linux-image-5.15.0-1102-azurelinux-tools-azure-lts-22.04linux-tools-5.15.0-1102-azurelinux-cloud-tools-azure-lts-22.04linux-cloud-tools-5.15.0-1102-azurelinux-headers-azure-lts-22.04linux-headers-5.15.0-1102-azurelinux-modules-extra-azure-lts-22.04linux-modules-extra-5.15.0-1102-azureRemaining packages (
linux-modules-5.15.0-1102-azure,linux-azure-headers-5.15.0-1102,linux-azure-tools-5.15.0-1102,linux-azure-cloud-tools-5.15.0-1102,wireless-regdb) are transitive dependencies pulled in automatically by apt.How it works
apt_get_dist_upgrade(line 106) transiently installs 1103 — this is expected and harmlesslinux-*azure*packages including 11035.15.0-1102-azureNo impact on other paths
linux-image-azure-fde-lts-*(different kernel flavor), unaffectedelsebranch, still uses meta-packagesENABLE_FIPS=truecse_install_ubuntu.shusesuname -rat runtime for headers, works with any kernel version on the VHD5.15prefix (not specific patch), so passes with 1102Revert
When the upstream regression is fixed, remove the
elifblock to resume tracking latest.