Merge lp:~clint-fewbar/ubuntu/natty/upstart/restore-re-exec-code into lp:ubuntu/natty/upstart
Proposed by
Clint Byrum
Status: | Merged |
---|---|
Merged at revision: | 1295 |
Proposed branch: | lp:~clint-fewbar/ubuntu/natty/upstart/restore-re-exec-code |
Merge into: | lp:ubuntu/natty/upstart |
Diff against target: |
121 lines (+74/-2) 3 files modified
debian/changelog (+9/-0) debian/control (+1/-0) init/main.c (+64/-2) |
To merge this branch: | bzr merge lp:~clint-fewbar/ubuntu/natty/upstart/restore-re-exec-code |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Kees Cook | Approve | ||
Ubuntu branches | Pending | ||
Review via email: mp+45295@code.launchpad.net |
Description of the change
Now that the libc6 version that cancels the telinit u has been accepted into natty, I'm proposing merging this in.
This will cause upstart to re-exec itself on 'telinit u', which sends a SIGTERM sent to pid 1.
This code was dropped for unknown reasons (possibly just by mistake of package importing into bzr) and will solve the issue of / not being able to be remounted read-only during the shutdown process.
To post a comment you must log in.
FYI, this is insufficient to stop root FS corruption.
I tested this on lucid, and occasionally it still fails the remount of /
This is because the SIGTERM signal is sent by telinit u, but then we don't wait for upstart to re-exec itself before moving on to the umount. This fails about 50% of the time on lucid.
The simple, but incomplete, solution is to add a sleep 1 after telinit u. The more appropriate solution is to have telinit ptrace 1 with PTRACE_O_TRACEEXEC.