/etc/init.d/umountroot: 'mount / is busy' due to upstart log file
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ureadahead (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Steve Langasek insisted that this bug must be reported to ureadahead.
I am almost sure that it resides somewhere else, but I run out of ideas.
This is another brunch of the Bug lp: #1073433
'Ext4 corruption associated with shutdown of Ubuntu 12.10'
Anyway inability to clearly remount root filesystem readonly is a serious issue.
During shutdown /etc/init.
mount: / is busy
it leads to filesystem recovery next boot.
It happens due to a file opened by upstart:
init 1 root 12w REG 8,2 344 2886145 /var/log/
(reported by lsof)
For some reason init (upstart) decides that for the third filesystem
there is a fork of ureadahed.
[ 19.563541] init: ureadahead-other main process (912)
[ 19.566832] init: ureadahead-other main process (912) executable changed
[ 19.619194] init: ureadahead-other main process (912) terminated with status 4
[ 19.621332] init: ureadahead-other goal changed from start to stop
[ 19.623678] init: ureadahead-other state changed from spawned to stopping
[ 19.628290] init: ureadahead-other state changed from stopping to killed
[ 19.630631] init: ureadahead-other state changed from killed to post-stop
[ 19.632954] init: ureadahead-other state changed from post-stop to waiting
[ 21.787397] init: ureadahead-other goal changed from stop to start
[ 21.789750] init: ureadahead-other state changed from waiting to starting
[ 21.794433] init: ureadahead-other state changed from starting to pre-start
[ 21.796985] init: ureadahead-other state changed from pre-start to spawned
[ 21.800622] init: ureadahead-other main process (920)
[ 21.803883] init: ureadahead-other main process (920) became new process (921)
[ 21.805935] init: ureadahead-other state changed from spawned to post-start
[ 21.808597] init: ureadahead-other state changed from post-start to running
later initctl status ureadahead-other reports
the process that is absent in ps output.
I would expect that the second ureadahead-other process
must exit with status 4 since there is no pack file.
/var/log/
ureadahead:
ureadahead:
The bug also appears if there are pack and home.pack files but no srv.pack.
Init does not hold log file if there pack files for all mounted filesystems.
Perhaps the easiest way is to try mainline kernel that does not support
file tracing required for ureadahead (to avoid creation of pack files
during debug).
I am in doubt if someone can easily reproduce this bug although
I see it each boot under certain conditions.
The bug appears for 3 filesystems in /etc/fstab (/ /home /srv in my case).
I never seen it when just / and /home were mounted.
In my case / is ext4, the others are ext3.
The last time the bug disappeared after I removed /srv/mnt directory
from / filesystem (when /srv was not mounted). Now even srv.pack
is not required, just pack and home.pack is enough. But the first
boot when there were no pack files finished with busy /.
I have tried another partition instead of regularly mounted /srv.
There was no bug if that partition was mounted to /mnt
instead of /srv. The bug likes 'acl' in the mount options.
I do not know why mysterious fork happens during second call
of ureadadead-other, I can not reproduce it lunching ureadahead
from command line under strace.
Versions:
Ubuntu 13.10 Raring, i686
ureadahead: 0.100.0-16
upstart: 1.8-0ubuntu1
Status changed to 'Confirmed' because the bug affects multiple users.