[Bug 1181789] Re: second call of 'initctl start' leads to fork instead of exec ('mount: / is busy' during shutdown)
Steve Dodd
1181789 at bugs.launchpad.net
Tue Jun 25 22:34:36 UTC 2013
Removing the assignment of proc->script solves this problem for me. If
in future we need to know how the process was started, we should store
that information elsewhere, because implicit and explicit use of the
shell are not exactly equivalent. Patch attached.
This and the patch in bug #1169614 give me a clean shutdown on current
saucy.
** Patch added: "Don't set proc->script on implicit shell use"
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/1181789/+attachment/3713952/+files/srd.diff
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to upstart in Ubuntu.
https://bugs.launchpad.net/bugs/1181789
Title:
second call of 'initctl start' leads to fork instead of exec ('mount:
/ is busy' during shutdown)
Status in “upstart” package in Ubuntu:
Confirmed
Bug description:
The real case for this issue is the Bug lp: #1181528 (ureadahead)
"/etc/init.d/umountroot: 'mount / is busy' due to upstart log file"
and a variant of Bug lp: #1073433
"Ext4 corruption associated with shutdown of Ubuntu 12.10"
Upstart holds a file open for writing so /etc/init.d/umountroot
can not cleanly remount root filesystem readonly.
Assume the following job description that is simulation of
ureadahead-other.conf when there is no .pack file for a mount
<file name="lazy-daemon.conf">
description "Debug open log file issue"
manual
expect fork
normal exit 0 4
exec /bin/sh -c 'echo "I am tired" >&2 ; exit 4 '
</file>
Let's start it
start lazy-daemon
[ 8433.561627] init: Connection from private client
[ 8433.563649] init: lazy-daemon goal changed from stop to start
[ 8433.563854] init: lazy-daemon state changed from waiting to starting
[ 8433.564474] init: Handling starting event
[ 8433.564797] init: lazy-daemon state changed from starting to pre-start
[ 8433.565106] init: lazy-daemon state changed from pre-start to spawned
[ 8433.567494] init: lazy-daemon main process (3673)
[ 8433.569516] init: lazy-daemon main process (3673) executable changed
[ 8433.570797] init: lazy-daemon main process (3673) terminated with status 4
[ 8433.571183] init: lazy-daemon goal changed from start to stop
[ 8433.571597] init: lazy-daemon state changed from spawned to stopping
[ 8433.571981] init: Handling stopping event
[ 8433.572459] init: lazy-daemon state changed from stopping to killed
[ 8433.572817] init: lazy-daemon state changed from killed to post-stop
[ 8433.573164] init: lazy-daemon state changed from post-stop to waiting
[ 8433.574376] init: Handling stopped event
lazy-daemon stop/waiting
In general everything works as expected (However I am in doubt
concerning 'executable changed'
Let's start again (One more mount and call of ureadahead-other
for it)
start lazy-daemon
[ 8493.929425] init: Connection from private client
[ 8493.931370] init: lazy-daemon goal changed from stop to start
[ 8493.931576] init: lazy-daemon state changed from waiting to starting
[ 8493.931817] init: Handling starting event
[ 8493.932444] init: lazy-daemon state changed from starting to pre-start
[ 8493.932750] init: lazy-daemon state changed from pre-start to spawned
[ 8493.935620] init: lazy-daemon main process (3681)
[ 8493.937540] init: lazy-daemon main process (3681) became new process (3682)
[ 8493.937620] init: lazy-daemon state changed from spawned to post-start
[ 8493.937860] init: lazy-daemon state changed from post-start to running
[ 8493.938093] init: Handling started event
lazy-daemon start/running, process 3682
I do not expect fake fork here. There is no 3682 process.
In any case upstart has to close the log file
ps uw 3682
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
initctl status lazy-daemon
lazy-daemon start/running, process 3682
lsof | grep lazy-daemon
init 1 root 13w REG 8,2 24 2888252 /var/log/upstart/lazy-daemon.log
Bug lp: #1130611 "Upstart never closes /var/log/upstart/mysql.log"
might be related to this issue
Versions:
Ubuntu 13.10 Raring i686
upstart: Installed: 1.8-0ubuntu1
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/1181789/+subscriptions
More information about the foundations-bugs
mailing list