[Bug 1806487] Re: [regression] Crashing with dbus.exceptions.DBusException when logind can't be started (yet)
Balint Reczey
balint.reczey at canonical.com
Wed Dec 19 18:40:34 UTC 2018
Verified 1.1ubuntu1.18.04.8 on Bionic:
root at bb-lp-1806487-uu:~# ln -s /dev/null /etc/systemd/system/systemd-logind.service
root at bb-lp-1806487-uu:~# service systemd-logind stop
root at bb-lp-1806487-uu:~#
root at bb-lp-1806487-uu:~# service systemd-logind status
● systemd-logind.service - Login Service
Loaded: loaded (/lib/systemd/system/systemd-logind.service; masked; vendor preset: enabled)
Active: inactive (dead) since Wed 2018-12-19 18:37:18 UTC; 4s ago
Docs: man:systemd-logind.service(8)
man:logind.conf(5)
https://www.freedesktop.org/wiki/Software/systemd/logind
https://www.freedesktop.org/wiki/Software/systemd/multiseat
Process: 196 ExecStart=/lib/systemd/systemd-logind (code=killed, signal=TERM)
Main PID: 196 (code=killed, signal=TERM)
Status: "Processing requests..."
Dec 19 14:08:17 bb-lp-1806487-uu systemd[1]: Starting Login Service...
Dec 19 14:08:17 bb-lp-1806487-uu systemd-logind[196]: New seat seat0.
Dec 19 14:08:17 bb-lp-1806487-uu systemd[1]: Started Login Service.
Dec 19 18:35:38 bb-lp-1806487-uu systemd-logind[196]: New session c1 of user root.
Dec 19 18:36:17 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:36:17 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:36:18 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:37:18 bb-lp-1806487-uu systemd[1]: Stopping Login Service...
Dec 19 18:37:18 bb-lp-1806487-uu systemd[1]: Stopped Login Service.
root at bb-lp-1806487-uu:~# systemctl daemon-reload
root at bb-lp-1806487-uu:~# service systemd-logind stop
root at bb-lp-1806487-uu:~# service systemd-logind status
● systemd-logind.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since Wed 2018-12-19 18:37:18 UTC; 32s ago
Main PID: 196 (code=killed, signal=TERM)
Status: "Processing requests..."
Dec 19 14:08:17 bb-lp-1806487-uu systemd[1]: Starting Login Service...
Dec 19 14:08:17 bb-lp-1806487-uu systemd-logind[196]: New seat seat0.
Dec 19 14:08:17 bb-lp-1806487-uu systemd[1]: Started Login Service.
Dec 19 18:35:38 bb-lp-1806487-uu systemd-logind[196]: New session c1 of user root.
Dec 19 18:36:17 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:36:17 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:36:18 bb-lp-1806487-uu systemd[1]: systemd-logind.service: Failed to reset devices.list: Operation not per
Dec 19 18:37:18 bb-lp-1806487-uu systemd[1]: Stopping Login Service...
Dec 19 18:37:18 bb-lp-1806487-uu systemd[1]: Stopped Login Service.
root at bb-lp-1806487-uu:~# /usr/share/unattended-upgrades/unattended-upgrade-shutdown --debug
root at bb-lp-1806487-uu:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
2018-12-19 18:37:58,922 WARNING - Could not get delay inhibitor lock
2018-12-19 18:37:58,922 DEBUG - Skip waiting for signals, starting operation now
2018-12-19 18:37:58,923 DEBUG - Starting countdown of 25.0 minutes
2018-12-19 18:37:58,923 DEBUG - Initializing apt_pkg configuration
2018-12-19 18:37:58,923 DEBUG - get_lock returned 7
2018-12-19 18:37:58,923 DEBUG - lock not taken
root at bb-lp-1806487-uu:~# rm /etc/systemd/system/systemd-logind.service
root at bb-lp-1806487-uu:~# systemctl daemon-reload
root at bb-lp-1806487-uu:~# service unattended-upgrades restart
root at bb-lp-1806487-uu:~# service unattended-upgrades status
● unattended-upgrades.service - Unattended Upgrades Shutdown
Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-12-19 18:38:28 UTC; 4s ago
Docs: man:unattended-upgrade(8)
Main PID: 1149 (unattended-upgr)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/unattended-upgrades.service
└─1149 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
Dec 19 18:38:28 bb-lp-1806487-uu systemd[1]: Started Unattended Upgrades Shutdown.
root at bb-lp-1806487-uu:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
2018-12-19 18:37:58,922 WARNING - Could not get delay inhibitor lock
2018-12-19 18:37:58,922 DEBUG - Skip waiting for signals, starting operation now
2018-12-19 18:37:58,923 DEBUG - Starting countdown of 25.0 minutes
2018-12-19 18:37:58,923 DEBUG - Initializing apt_pkg configuration
2018-12-19 18:37:58,923 DEBUG - get_lock returned 7
2018-12-19 18:37:58,923 DEBUG - lock not taken
2018-12-19 18:38:28,808 WARNING - SIGTERM or SIGHUP received, stopping unattended-upgradesonly if it is running
root at bb-lp-1806487-uu:~# service unattended-upgrades restart
root at bb-lp-1806487-uu:~# service unattended-upgrades status
● unattended-upgrades.service - Unattended Upgrades Shutdown
Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-12-19 18:39:09 UTC; 2s ago
Docs: man:unattended-upgrade(8)
Main PID: 1163 (unattended-upgr)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/unattended-upgrades.service
└─1163 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
Dec 19 18:39:09 bb-lp-1806487-uu systemd[1]: Started Unattended Upgrades Shutdown.
root at bb-lp-1806487-uu:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.logf
tail: cannot open '/var/log/unattended-upgrades/unattended-upgrades-shutdown.logf' for reading: No such file or directory
root at bb-lp-1806487-uu:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
2018-12-19 18:37:58,922 WARNING - Could not get delay inhibitor lock
2018-12-19 18:37:58,922 DEBUG - Skip waiting for signals, starting operation now
2018-12-19 18:37:58,923 DEBUG - Starting countdown of 25.0 minutes
2018-12-19 18:37:58,923 DEBUG - Initializing apt_pkg configuration
2018-12-19 18:37:58,923 DEBUG - get_lock returned 7
2018-12-19 18:37:58,923 DEBUG - lock not taken
2018-12-19 18:38:28,808 WARNING - SIGTERM or SIGHUP received, stopping unattended-upgradesonly if it is running
2018-12-19 18:39:09,702 WARNING - SIGTERM or SIGHUP received, stopping unattended-upgradesonly if it is running
root at bb-lp-1806487-uu:~# dpkg -l unattended-upgrades | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==================-============-===========================================
ii unattended-upgrades 1.1ubuntu1.18.04.8 all automatic installation of security upgrades
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to unattended-upgrades in Ubuntu.
https://bugs.launchpad.net/bugs/1806487
Title:
[regression] Crashing with dbus.exceptions.DBusException when logind
can't be started (yet)
Status in unattended-upgrades package in Ubuntu:
Fix Released
Status in unattended-upgrades source package in Xenial:
Fix Committed
Status in unattended-upgrades source package in Bionic:
Fix Committed
Status in unattended-upgrades source package in Cosmic:
Fix Committed
Bug description:
[Impact]
* Unattended-upgrades.service may crash due to starting earlier than dbus and logind are up or due to logind failing to start.
* Unattended-upgrades.service not starting prevents installation of upgrades on shutdown (when u-u is configured to do that) and also prevents gracefully stopping running u-u _before_ shutdown as implemented in LP: #1803137. U-u is still stopped gracefully after the shutdown transaction is started, but that may let service restarts hang the upgrade process.
* The fix is adding an After service dependency on systemd-logind to ensure starting u-u.service after logind at least tried to start and also changing u-u-s to start even with logind's absence.
[Test Case]
* Stop systemd-logind and make it unable to start for example by
masking it:
root at bb-logind:~# ln -s /dev/null /etc/systemd/system/systemd-logind.service
root at bb-logind:~# systemctl daemon-reload
root at bb-logind:~# service systemd-logind stop
root at bb-logind:~# service systemd-logind status
● systemd-logind.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead) since Thu 2018-12-13 13:02:44 UTC; 1s ago
Main PID: 1938 (code=killed, signal=TERM)
Status: "Processing requests..."
...
* Run u-u-s and observe it crashing in unfixed version and starting
with falling back to polling logind instead taking the inhibition lock
at its start:
root at bb-logind:~# /usr/share/unattended-upgrades/unattended-upgrade-shutdown --debug
root at bb-logind:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
...
2018-12-13 14:30:17,600 WARNING - Could not get delay inhibitor lock
2018-12-13 14:30:17,601 DEBUG - Skip waiting for signals, starting operation now
2018-12-13 14:30:17,601 DEBUG - Starting countdown of 25.0 minutes
2018-12-13 14:30:17,602 DEBUG - Initializing apt_pkg configuration
2018-12-13 14:30:17,602 DEBUG - get_lock returned 7
2018-12-13 14:30:17,602 DEBUG - lock not taken
* Restore logind's ability to start
root at bb-logind:~# rm /etc/systemd/system/systemd-logind.service
root at bb-logind:~# systemctl daemon-reload
* Restart unattended-upgrades.service
root at bb-logind:~# service unattended-upgrades restart
root at bb-logind:~# service unattended-upgrades status
● unattended-upgrades.service - Unattended Upgrades Shutdown
Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-12-13 14:31:43 UTC; 3s ago
Docs: man:unattended-upgrade(8)
Main PID: 4129 (unattended-upgr)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/unattended-upgrades.service
└─4129 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
Dec 13 14:31:43 bb-logind systemd[1]: Started Unattended Upgrades Shutdown.
root at bb-logind:~# tail /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
2018-12-13 14:30:17,601 DEBUG - Starting countdown of 25.0 minutes
2018-12-13 14:30:17,602 DEBUG - Initializing apt_pkg configuration
2018-12-13 14:30:17,602 DEBUG - get_lock returned 7
2018-12-13 14:30:17,602 DEBUG - lock not taken
2018-12-13 14:31:43,595 WARNING - SIGTERM or SIGHUP received, stopping unattended-upgradesonly if it is running
2018-12-13 14:31:43,688 WARNING - Could not get delay inhibitor lock
2018-12-13 14:31:43,691 WARNING - Unable to monitor PrepareForShutdown() signal, polling instead.
2018-12-13 14:31:43,691 WARNING - Maybe systemd-logind service is not running.
2018-12-13 14:31:43,691 WARNING - Unable to monitor PrepareForShutdown() signal, polling instead.
2018-12-13 14:31:43,691 WARNING - To enable monitoring the PrepareForShutdown() signal instead of polling please install the python3-gi package
root at bb-logind:~# systemd-analyze dot | grep unattended
...
"unattended-upgrades.service"->"systemd-logind.service" [color="green"];
...
[Regression Potential]
* The change to service ordering is unlikely to cause any issue, but
the graceful handling of missing logind involved a small-scale
refactoring of u-u-s's code. Extensive testing did not reveal
regressions in that area, but potential bugs may cause u-u.service
fail to start and affect graceful shutdown of u-u the same way as
detailed in [Impact].
[Original Bug Text]
The Ubuntu Error Tracker has been receiving reports about a problem regarding unattended-upgrades. This problem was most recently seen with package version 1.1ubuntu1.18.04.7, the problem page at https://errors.ubuntu.com/problem/caf5d885046359f4857cee6c4a61e1d72d0913b1 contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports.
If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
Also seen as:
* https://errors.ubuntu.com/problem/ac61b23e0ec25a291427b875bf213fdd5b097fa5
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1806487/+subscriptions
More information about the foundations-bugs
mailing list