upstart crashes if re-exec'ed with active chroot sessions
Bug #1199778 reported by
James Hunt
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
upstart |
Fix Released
|
High
|
James Hunt | ||
upstart (Ubuntu) |
Fix Released
|
High
|
Dimitri John Ledkov | ||
Raring |
Won't Fix
|
Undecided
|
Unassigned | ||
Saucy |
Fix Released
|
High
|
Dimitri John Ledkov |
Bug Description
Problem affects both 1.9 and 1.9.1.
Related branches
lp:~jamesodhunt/upstart/bug-1199778
- Dimitri John Ledkov: Needs Information
- James Hunt: Needs Resubmitting
-
Diff: 66798 lines (+66151/-170)13 files modifiedChangeLog (+65/-0)
init/Makefile.am (+3/-1)
init/job_class.c (+1/-1)
init/session.c (+10/-1)
init/state.c (+41/-53)
init/tests/data/upstart-session.json (+32985/-0)
init/tests/data/upstart-session2.json (+32436/-0)
init/tests/test_state.c (+410/-41)
init/tests/test_util.c (+60/-0)
init/tests/test_util.h (+8/-0)
po/upstart.pot (+73/-73)
test/test_util_common.c (+55/-0)
test/test_util_common.h (+4/-0)
Changed in upstart: | |
importance: | Undecided → High |
assignee: | nobody → James Hunt (jamesodhunt) |
affects: | ubuntu → upstart (Ubuntu) |
Changed in upstart (Ubuntu): | |
importance: | Undecided → High |
Changed in upstart: | |
status: | New → In Progress |
Changed in upstart (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Dmitrijs Ledkovs (xnox) |
Changed in upstart: | |
status: | In Progress → Fix Committed |
Changed in upstart: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
This problem affects those systems hosting chroots but also affects those with sbuild/pbuilder installed. The failure process is as follows:
- user builds a package in the sbuild/pbuilder env.
- upstart gets updated within the sbuild/pbuilder chroot as part of the package build.
- as part of the upgrade, the Upstart maintainer script gets called which calls "initctl version" crucially *before* ischroot gets
called.
- at this stage an upstart session now exists for the chroot on the host system.
- the version of upstart gets upgraded on the host system (*)
- the upgrade triggers a stateful re-exec.
- seemingly on deserialisation, if sessions exist in the meta-data, a crash results.