apt/jammy SRU uploaded. The ones for noble and devel need a bit more massaging due to test suite failures but are not relevant before oracular is released (noble's apt is used for noble->oracular updates)
** Also affects: apt (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: ubuntu-release-upgrader (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: linux-aws (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: linux-gcp (Ubuntu Noble) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: ubuntu-release-upgrader (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: linux-aws (Ubuntu Jammy) Importance: Undecided Status: New ** Also affects: linux-gcp (Ubuntu Jammy) Importance: Undecided Status: New ** No longer affects: ubuntu-release-upgrader (Ubuntu Jammy) ** Changed in: apt (Ubuntu Jammy) Status: New => In Progress ** Changed in: ubuntu-release-upgrader (Ubuntu Noble) Status: New => In Progress -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-aws in Ubuntu. https://bugs.launchpad.net/bugs/2078720 Title: Upgrading from jammy to noble results in a linux-headers package being in a broken state Status in apt package in Ubuntu: New Status in linux-aws package in Ubuntu: Confirmed Status in linux-gcp package in Ubuntu: Confirmed Status in ubuntu-release-upgrader package in Ubuntu: Fix Committed Status in apt source package in Jammy: In Progress Status in linux-aws source package in Jammy: New Status in linux-gcp source package in Jammy: New Status in apt source package in Noble: New Status in linux-aws source package in Noble: New Status in linux-gcp source package in Noble: New Status in ubuntu-release-upgrader source package in Noble: In Progress Bug description: [Impact] Obsolete packages can be removed despite still having reverse dependencies installed, for example: Now that 24.04.1 has been released, 22.04 users are encouraged to upgrade to 24.04 via the `do-release-upgrade` command. This issue was seen whilst testing this upgrade path. Upgrading and later rebooting a jammy GCP instance results in `linux-headers-6.5.0-1025-gcp` being a broken state. ``` $ sudo apt install Reading package lists... Done Building dependency tree... Done Reading state information... Done You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: linux-headers-6.5.0-1025-gcp : Depends: linux-gcp-6.5-headers-6.5.0-1025 but it is not installable E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution). ``` `linux-gcp-6.5-headers-6.5.0-1025` is a dependency of `linux-image-6.5.0-1025-gcp` which is also not removed during the upgrade. ``` $ apt-cache rdepends linux-headers-6.5.0-1025-gcp linux-headers-6.5.0-1025-gcp Reverse Depends: linux-image-6.5.0-1025-gcp $ apt-cache rdepends linux-image-6.5.0-1025-gcp linux-image-6.5.0-1025-gcp Reverse Depends: ``` Running `apt --fix-broken install` resolves the error. ``` $ sudo apt --fix-broken install Reading package lists... Done Building dependency tree... Done Reading state information... Done Correcting dependencies... Done The following packages will be REMOVED: linux-headers-6.5.0-1025-gcp 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 27.9 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 83770 files and directories currently installed.) Removing linux-headers-6.5.0-1025-gcp (6.5.0-1025.27~22.04.1) ... $ sudo apt install Reading package lists... Done Building dependency tree... Done Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. ``` This issue was also observed after upgrading a jammy AWS instance to noble. ``` $ sudo apt install Reading package lists... Done Building dependency tree... Done Reading state information... Done You might want to run 'apt --fix-broken install' to correct these. The following packages have unmet dependencies: linux-headers-6.5.0-1024-aws : Depends: linux-aws-6.5-headers-6.5.0-1024 but it is not installable E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution). ``` [Test plan] To prepare the VMs, follow the following scheme: $ lxc launch ubuntu:jammy jammy-to-noble $ lxc exec jammy-to-noble apt-mark lxd-agent-launcher # otherwise it resets To validate the apt change on jammy, ubuntu@jammy-to-noble$ add-apt-repository -p proposed ubuntu@jammy-to-noble$ apt install libapt-pkg6.0 # to upgrade libapt-pkg6.0 ubuntu@jammy-to-noble$ do-release-upgrade To validate the APT change on noble, we must rely on the test suite as we won't have a noble->oracular upgrade bug causing it, most likely. To validate an ubuntu-release-upgrader change, instead run: ubuntu@jammy-to-noble$ do-release-upgrade -p ubuntu@mantic-to-noble$ do-release-upgrade -p [Where problems could occur: APT SRU] For the APT change, the function in question is used in a small number of places: In APT library: - In the `upgrade` command and library function. Removals are already undone there before calling it so we never reach the new code path. - In the phased update implementation, during dist-upgrade. I expect a failure is lurking there that is fixed by this, but I haven't been able to write a reproducer to trigger it just yet. In aptitude: - The function is wrapped, but the wrapper never called In QApt: - QApt seems to rely on it for upgrading and doesn't seem to have any error checking of the return value. I expect it will read the error [Where problems could occur: u-r-u SRU] Upgrades will now result in a consistent state, but may spend hours searching for obsolete software again. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/2078720/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp