[Bug 988394] Re: Reboot hangs because /etc/rc6.d/S40umountfs chokes on non-existent mounts
agenkin
agenkin at gmail.com
Thu May 3 17:53:53 UTC 2012
I'm attaching a one-line modification to the /etc/init.d/umountfs script
that fixes the problem for us. It causes umountfs to ingore
/proc/mounts entries where FSTYPE is 'autofs'.
I believe that this is a correct solution because these 'autofs' entries
are not the actual file systems mounted by autofs, but the mount points
or directories monitored by the automount daemon. The actual autofs-
mounted file systems (if any) will not be skipped over because they will
appear as a separate entry in /proc/mounts and their FSTYPE is not going
to be 'autofs', but whatever it is in reality ('nfs' in our case, for
example).
** Patch added: "umountfs.diff"
https://bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/988394/+attachment/3128124/+files/umountfs.diff
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to sysvinit in Ubuntu.
https://bugs.launchpad.net/bugs/988394
Title:
Reboot hangs because /etc/rc6.d/S40umountfs chokes on non-existent
mounts
Status in “sysvinit” package in Ubuntu:
New
Bug description:
All our machnes were hanging indefinitely when asked to reboot. We
traced it down to the /etc/rc6.d/S40umountfs script hanging. The
problem in our case is that autofs leaves phantom entries in
/proc/mounts after it's stopped (I'm reporting this as a separate bug
#988397). The entries autofs creates are not real mount points -
these are the directories monitored by the autofs daemon, which mounts
file systems as subdirectories to those directories.
The expected behaviour for the umountfs script would be to skip over
any bogus mount points, left over by autofs or anything else.
For instance, we found out that by the time /etc/rc6.d/S40umountfs
runs the autofs daemon is stopped (as expected) and all directories
that had been mounted by it are already unmounted (as expected, it
mounts NFS shares in our case, which are unmounted by
/etc/rc6.d/S31umountnfs.sh). However, /proc/mounts still contained
the following lines:
/etc/auto.nfs_h /h autofs rw,relatime,fd=6,pgrp=1004,timeout=300,minproto=5,maxproto=5,indirect 0 0
/etc/auto.nfs_s /s autofs rw,relatime,fd=12,pgrp=1004,timeout=300,minproto=5,maxproto=5,indirect 0 0
/etc/auto.nfs_cdf /cdf autofs rw,relatime,fd=18,pgrp=1004,timeout=300,minproto=5,maxproto=5,direct 0 0
which confused the umountfs script. The variable REG_MTPTS, among the
proper file systems, contained the following: "/h /s /cdf".
Subsequently, when the umountfs script invoked "fstab-decode umount
..." it hung trying to unmount these non-existent file systems.
In summary, I think that either the umountfs script should be made
smarter to not pass bogus mount points to fstab-decode, or fstab-
decode should be more robust and not hang when given a mount point
that does not exist. Perhaps both.
Thanks!
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: initscripts 2.88dsf-13.10ubuntu11
ProcVersionSignature: Ubuntu 3.2.0-23.36-generic-pae 3.2.14
Uname: Linux 3.2.0-23-generic-pae i686
ApportVersion: 2.0.1-0ubuntu6
Architecture: i386
Date: Wed Apr 25 11:33:07 2012
ProcEnviron:
TERM=xterm
PATH=(custom, no user)
SHELL=/local/bin/bash
SourcePackage: sysvinit
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/988394/+subscriptions
More information about the foundations-bugs
mailing list