"telinit u" under upstart (upstart's Restart command) with systemd-sysv installed runs systemd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd (Ubuntu) |
Fix Released
|
Critical
|
Martin Pitt | ||
upstart (Debian) |
Fix Released
|
Unknown
|
|||
upstart (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
Bug Description
I've today had two machines kill my X session during dist-upgrade, and it happened during libc6 postinst. Dmesg shows that systemd got somehow started during the earlier phase of the upgrade. X logs show a failure with "(EE) Cannot establish any listening sockets" etc..
Adam can fill in the more detailed analysis of what's happening there.. but I think it should be fairly easy to reproduce by installing vivid from an earlier image and dist-upgrading to current, if needed.
Reproducer:
- Start with a standard utopic VM (e. g. adt-buildvm-
- Switch apt sources to vivid
- sudo apt install systemd-sysv
- sudo telinit u # systemd command, forwards to upstart's /lib/sysvinit/
- Or directly: sudo /lib/sysvinit/
Changed in systemd (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Martin Pitt (pitti) |
description: | updated |
description: | updated |
description: | updated |
summary: |
- switching init systems together with a libc upgrade kills X and disrupts - the upgrade + "telinit u" under upstart with systemd-sysv installed runs systemd |
Changed in upstart (Ubuntu): | |
importance: | Undecided → Critical |
description: | updated |
summary: |
- "telinit u" under upstart with systemd-sysv installed runs systemd + "telinit u" under upstart (upstart's Restart command) with systemd-sysv + installed runs systemd |
Changed in upstart (Debian): | |
status: | Unknown → New |
Changed in upstart (Debian): | |
status: | New → Fix Released |
Fairly sure, without actually reproducing myself, that "telinit u" is starting a fresh systemd and taking over PID1, instead of either calling back to upstart (the current PID1) or doing nothing, either of which would be preferable.