dist-upgrader needs backported dpkg/apt with triggers support
Bug #134000 reported by
Colin Watson
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apt (Ubuntu) |
Fix Released
|
High
|
Michael Vogt | ||
dpkg (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned | ||
update-manager (Ubuntu) |
Fix Released
|
High
|
Michael Vogt |
Bug Description
Due to the transitional arrangements for dpkg-triggers, it is possible for the dpkg runs done by apt to do a dist upgrade to leave unprocessed triggers. (This is only true for the one apt run which installs the new dpkg.)
To ensure that triggers are properly run, and the user is not surprised by unexpectedly leftover trigger processing, the dist upgrader should run dpkg --configure --pending at some appropriate point late in the upgrade cycle, if it does not do so already (I haven't checked).
Related branches
Changed in update-manager: | |
assignee: | nobody → mvo |
Changed in update-manager: | |
status: | Confirmed → In Progress |
Changed in apt: | |
importance: | Undecided → High |
status: | New → In Progress |
Changed in apt: | |
assignee: | nobody → mvo |
status: | In Progress → Fix Released |
To post a comment you must log in.
I agree that this behaviour looks unusual. The system is operating as designed.
It is difficult to do much better because of the way that apt invokes dpkg - in particular, the new dpkg doesn't get to run until the next run after it has been installed, and apt generally instructs dpkg only to process specific packages. We don't want to make dpkg process these transitional trigger states for all packages in an apparently unrelated run because that would be very unexpected for someone using dpkg from the command line (eg to fix a broken system).
So I don't propose to do anything about this in dpkg. However, we must make sure that the dist-upgrader definitely runs dpkg --configure --pending after the upgrade. I will add a task to this bug to reflect this and adjust the bug title etc. appropriately.