Unattended-upgrades may keep running after unmounting local filesystems in InstallOnShutdown mode
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unattended-upgrades (Ubuntu) |
Fix Released
|
Undecided
|
Balint Reczey | ||
Cosmic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Unattended-upgrades may keep running during shutdown even beyond unmounting local filesystems potentially leaving a broken installation behind.
* The fix reverts the original fix of LP: #1778219 and applies a different one starting unattended-
[Test Case]
* Run unattended-upgrades in InstallOnShutdown mode and observe it being finished installing a few packages _before_ the shutdown transaction starts:
$ lxc launch ubuntu:18.10 cc-uu-onshutdown
Creating cc-uu-onshutdown
Starting cc-uu-onshutdown
$ lxc shell cc-uu-onshutdown
mesg: ttyname failed: No such device
root@cc-
33 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@cc-
root@cc-
method return time=1542112922
Session terminated, terminating shell...$
$ lxc shell cc-uu-onshutdown
mesg: ttyname failed: No such device
root@cc-
...
Nov 13 12:50:10 cc-uu-shutdown systemd[1]: Started Unattended Upgrades Shutdown.
Nov 13 12:51:17 cc-uu-shutdown systemd-
...
root@cc-
...
2018-11-13 12:51:13,835 WARNING - Running unattended-upgrades in shutdown mode
2018-11-13 12:51:13,852 WARNING - Unattended-upgrade in progress during shutdown, please don't turn off the computer
2018-11-13 12:51:15,482 WARNING - Unattended-upgrade in progress during shutdown, please don't turn off the computer
2018-11-13 12:51:17,151 WARNING - Unattended-upgrade in progress during shutdown, please don't turn off the computer
2018-11-13 12:51:17,166 INFO - All upgrades installed
[Regression Potential]
* The change reverts the behavior of unattended-
In my testing on Bionic when a logged-in user shuts down the system when InstallOnShutdown is configured the user is dropped out to the login manager and nothing shows that u-u is running behind the screens for 30s, when the inhibition timer expires and u-u is starting to gracefully stop and the usual text appears after the login manager exits and plymouth shutdown screen is shown. The fix would be the login manager also monitoring PrepareForShutd
On Xenial (with Unity) starting shutdown from the graphical session does not log the user out nor show any progress on the shutdown until the inhibition timer expires which is confusing. Users should be logged out on PrepareForShutd
* The reversion of unattended-
* The fix itself rewrites big part of unattended-
* The fix includes increasing logind's InhibitDelayMaxSec to 30s to give u-u enough time to gracefully stop in normal mode and install packages in InstallOnShutdown mode. The delay is global, thus any other program holding the lock can delay shutdown or sleep by 30s instead of the original 5s default. This regression is hard to avoid and the 30s was chosen to minimize the regression potential while still giving more than 5s to u-u to finish actions. Bugs reporting increased delay to sleep or shutdown should be monitored to catch other programs misbehaving with this new default.
* There is a rarely occurring new crash caused by this fix tracked in LP: #1806487.
[Other Info]
This is a regression of introduced in LP: #1778219 and can be observed in a cosmic lxd container easily:
$ lxc launch ubuntu:18.10 cc-uu-onshutdown
Creating cc-uu-onshutdown
Starting cc-uu-onshutdown
$ lxc shell cc-uu-onshutdown
mesg: ttyname failed: No such device
root@cc-
33 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@cc-
root@cc-
method return time=1542112922
Session terminated, terminating shell...$
$ lxc shell cc-uu-onshutdown
mesg: ttyname failed: No such device
root@cc-
...
Nov 13 12:42:02 cc-uu-onshutdown systemd[1]: Stopped target Local File Systems.
Nov 13 12:42:02 cc-uu-onshutdown systemd[1]: unattended-
Nov 13 12:42:02 cc-uu-onshutdown systemd[1]: Starting Unattended Upgrades Shutdown...
..
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
The fix is already released in 1.7ubuntu1.