many: fix swapping back and forth between kernels with components during remodeling
This fixes and tests the case where we remodel to a kernel snap that is already installed on the system, but is not the current kernel due to a previous remodel.
Note that this PR removes the existing "prepare-kernel-snap" task from the created tasks here, because the task is superfluous in this case. The kernel's drivers tree is already generated from the original installation of the kernel.
Wed Feb 26 10:52:03 UTC 2025 The following results are from: https://github.com/canonical/snapd/actions/runs/13539347462
Failures:
Preparing:
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-to-installed-kernel
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-set-efi-boot-vars:BOOTDIR_NOSEC
- google-nested:ubuntu-24.04-64:tests/nested/manual/kernel-modules-components:plain
- google-nested:ubuntu-24.04-64:tests/nested/manual/uc20-install-in-initrd:both
- google-nested:ubuntu-24.04-64:tests/nested/manual/component-recovery-system
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-4k-sector-size:logical
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-fde-dbx
- google-nested:ubuntu-24.04-64:tests/nested/manual/component-recovery-system-offline
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-validation-sets-invalid
- google-nested:ubuntu-24.04-64:tests/nested/manual/recovery-system-offline:pre_installed_snaps
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-to-installed-kernel
- google-nested:ubuntu-24.04-64:tests/nested/manual/uc20-fde-hooks:files
- google-nested:ubuntu-24.04-64:tests/nested/manual/hybrid-remodel
- google-nested:ubuntu-24.04-64:tests/nested/manual/hybrid-fde-dbx
Executing:
- google-nested:ubuntu-18.04-64:tests/nested/manual/minimal-smoke:secboot_enabled
- google-nested:ubuntu-18.04-64:tests/nested/manual/minimal-smoke:secboot_disabled
- google-nested:ubuntu-20.04-64:tests/nested/manual/minimal-smoke:secboot_disabled
- google-nested:ubuntu-20.04-64:tests/nested/manual/minimal-smoke:secboot_enabled
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-with-components
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:partial
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:plain
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-core:install_optional_all
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:seeded
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:encrypted
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-core:install_optional_snap
- google-nested:ubuntu-24.04-64:tests/nested/manual/split-refresh
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-early-config
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller
- google-nested:ubuntu-24.04-64:tests/nested/manual/preseed
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-with-components-offline
- google-nested:ubuntu-24.04-64:tests/nested/manual/component-recovery-system
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:encrypted
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:partial
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:plain
- google-nested:ubuntu-24.04-64:tests/nested/manual/remodel-with-components
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-remodel
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-real:seeded
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-core:install_optional_all
- google-core:ubuntu-core-18-64:tests/main/security-device-cgroups-self-manage
Restoring:
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-set-efi-boot-vars:BOOTDIR_NOSEC
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/kernel-modules-components:plain
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-core:install_optional_snap
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/uc20-install-in-initrd:both
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/component-recovery-system
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/core20-4k-sector-size:logical
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
- google-nested:ubuntu-24.04-64:tests/nested/manual/muinstaller-core:install_optional_all
- google-nested:ubuntu-24.04-64:tests/nested/manual/
- google-nested:ubuntu-24.04-64
Codecov Report
Attention: Patch coverage is 71.01449% with 20 lines in your changes missing coverage. Please review.
Project coverage is 78.12%. Comparing base (
a272aac) to head (95fd8bd). Report is 70 commits behind head on master.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| overlord/snapstate/snapstate.go | 71.01% | 13 Missing and 7 partials :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## master #15046 +/- ##
==========================================
+ Coverage 78.07% 78.12% +0.05%
==========================================
Files 1182 1175 -7
Lines 157743 158002 +259
==========================================
+ Hits 123154 123445 +291
+ Misses 26943 26886 -57
- Partials 7646 7671 +25
| Flag | Coverage Δ | |
|---|---|---|
| unittests | 78.12% <71.01%> (+0.05%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
As discussed with @andrewphelpsj, it's unlikely this content will make 2.68.2. Keeping tag for the moment, will reevaluate when everything else is ready.
Note: google-nested:ubuntu-24.04-64:tests/nested* tests affected by missing 24.04.1 image, this was fixed with https://github.com/canonical/snapd/pull/15125. Not rebasing in the interest of time for 2.68.2 release.
Please note this was reverted later with https://github.com/canonical/snapd/pull/15139. Removing milestone 2.68.2 to avoid confusion.