22.04: python3* mismatched phasing breaks dist-upgrades
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apt (Ubuntu) |
Fix Released
|
Critical
|
Julian Andres Klode | ||
Jammy |
Fix Released
|
Undecided
|
Julian Andres Klode | ||
python3-defaults (Ubuntu) |
Fix Released
|
Critical
|
Unassigned | ||
python3-stdlib-extensions (Ubuntu) |
Fix Released
|
Critical
|
Unassigned | ||
python3.10 (Ubuntu) |
Fix Released
|
Critical
|
Unassigned |
Bug Description
Impact
------
Users who manually run sudo apt dist-upgrade without paying attention can remove essential parts of their system
Test Plan
---------
autopkgtests run the integration test suite. We have added a simplified version of the EDSP file attached here with additional fields for the phasing info (and support to the EDSP reader) to automatically check this as part of the test suite.
The changes made were to essentially only include installed and phased python3.10, python3-defaults upgrades. And then we run the solver on that and check the exact actions it takes, which is an autoremove of systemd-hwe-hwdb which is fine.
Before the change, it was removing half the system.
Original test case:
This test case won't work as well if phasing is set to 0% or 100%
Create /etc/apt/
APT::Machine-ID 2c030cfce3b4487
Then run
sudo apt update
sudo apt dist-upgrade
Where problems could occur
-------
This fix touches the dist-upgrade code and the enablement for the test case also touches the EDSP writer and reader, so problems can occur in the EDSP debugging bits and during dist-upgrades, related to phasing upgrades.
Workaround In Advance
-------
Don't run sudo apt dist-upgrade. Just run sudo apt upgrade
Or use Update Manager or the Ubuntu Store to apply updates
Workaround Afterwards
-------
Fortunately, apt phasing is ignored for new package installs. So to get your Ubuntu Desktop back, just run
sudo apt install ubuntu-desktop
Other Info
----------
These 3 updates were published today:
python3-
python3-defaults
python3.10
Suggested Fix
-------------
Fully phase those 3 source packages to 100%
Apt Output
----------
The following packages were automatically installed and are no longer required:
apg apport-symptoms aptdaemon-data avahi-utils cups-pk-helper distro-info gdb gedit-common genisoimage gir1.2-
gir1.
gir1.2-unity-7.0 gir1.2-vte-2.91 gir1.2-wnck-3.0 gnome-control-
libc6-dbg libcolord-gtk1 libdebuginfod-
libgupnp-
librygel-
libxvmc1 mobile-
python3-chardet python3-click python3-colorama python3-
python3-httplib2 python3-idna python3-
python3-louis python3-monotonic python3-
python3-requests python3-rfc3339 python3-
xbitmaps xbrlapi xcvt xfonts-scalable xinit xinput xserver-xorg-core xserver-
xserver-
xserver-
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
apport apport-gtk aptdaemon apturl apturl-common command-not-found deja-dup duplicity gedit gnome-control-
hplip ibus ibus-table language-
python3-aptdaemon python3-
python3-gi python3-gi-cairo python3-ibus-1.0 python3-
python3-pyatspi python3-pymacaroons python3-renderpm python3-reportlab python3-
rhythmbox-
totem-plugins ubuntu-
ubuntu-
The following NEW packages will be installed:
gnome-session
The following packages have been kept back:
grub-
python3-gdbm python3-lib2to3 python3-minimal python3-speechd python3.10 python3.10-minimal speech-dispatcher speech-
systemd-sysv systemd-timesyncd udev xwayland
0 upgraded, 1 newly installed, 83 to remove and 28 not upgraded.
Changed in python3-stdlib-extensions (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Critical |
Changed in python3-defaults (Ubuntu): | |
importance: | Undecided → Critical |
Changed in apt (Ubuntu): | |
importance: | Undecided → Critical |
status: | New → Triaged |
Changed in python3-defaults (Ubuntu): | |
status: | New → Triaged |
description: | updated |
description: | updated |
tags: | added: rls-jj-incoming |
description: | updated |
tags: | added: foundtations-todo |
description: | updated |
no longer affects: | python3-defaults (Ubuntu Jammy) |
no longer affects: | python3-stdlib-extensions (Ubuntu Jammy) |
no longer affects: | python3.10 (Ubuntu Jammy) |
Changed in apt (Ubuntu Jammy): | |
status: | New → Triaged |
assignee: | nobody → Julian Andres Klode (juliank) |
Changed in apt (Ubuntu): | |
assignee: | nobody → Julian Andres Klode (juliank) |
tags: | removed: rls-jj-incoming |
tags: | removed: foundations-todo |
Same issue as [Bug 1990525] [NEW] E: Internal Error, AutoRemover broke stuff. See the comment there.