Trusty's libselinux1 causes issues with Precise's upstart during dist-upgrade
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libselinux (Ubuntu) |
Fix Released
|
High
|
Dimitri John Ledkov | ||
Trusty |
Fix Released
|
High
|
Dimitri John Ledkov | ||
Utopic |
Fix Released
|
High
|
Dimitri John Ledkov |
Bug Description
[Impact]
* During upgrade to trusty, upstart would be forcefully re-executed, even if it doesn't support stateful re-execution. This means all job statuses is lost.
* Upgrade strategy for upstart is that when stateful re-execution is not supported, a flag should be left to re-execute upstart on shut-down only.
* The culprit is in libselinux1, a new dependency of upstart in trusty that does not have appropriate login in its postinst.
[Test Case]
* Using precise's upstart as pid one execute:
$ initctl list
* Install libselinux1 from trusty-proposed
* Execute
$ initctl list
* The two lists should be largely the same, with state of jobs preserved.
* /var/run/
[Other Info]
* Original bug report:
Hi everyone,
During troubleshooting of bug http://
Can someone add a Breaks for Precise's upstart version to Trusty's libselinux1 debian/control file?
Reproduction instructions:
Install Ubuntu 12.04.4.
$ sudo apt-get update -qq && sudo apt-get dist-upgrade -qqy
<no output; no updates>
$ initctl list
avahi-daemon start/running, process 765
...
$ sudo sed -i 's/precise/
$ sudo apt-get update -qq
<no ouput; no errors>
$ sudo apt-get install libselinux1 -y
...
New dmesg lines:
[ 256.032898] init: Re-executing /sbin/init
New syslog lines:
Apr 23 14:51:40 test upstart-
Apr 23 14:51:40 test upstart-
$ initctl list
avahi-daemon stop/waiting
...
Upstart lost track of service PIDs. Commands like 'initctl reload dbus' will fail.
summary: |
- Trusty's libselinux1 is causes issues with Precise's upstart during - dist-upgrade + Trusty's libselinux1 causes issues with Precise's upstart during dist- + upgrade |
description: | updated |
Changed in libselinux (Ubuntu Utopic): | |
status: | Triaged → In Progress |
Changed in libselinux (Ubuntu Trusty): | |
status: | Triaged → In Progress |
tags: | added: verification-done |
upstart in precise does not link/use libselinux, nor supports stateful re-execution.
If one re-execs precise's upstart, it looses state of all jobs.
upstart in trusty does support stateful re-execution and links against libselinux.
I'll inspect libselinux post-install scripts, but it should only re-execute upstart if and only if "initctl version" is > 1.10