[Bug 988394] Re: Reboot hangs because /etc/rc6.d/S40umountfs chokes on non-existent mounts
Steve Langasek
steve.langasek at canonical.com
Thu May 3 23:03:12 UTC 2012
I don't think this analysis is correct. At the time the umountfs script
finishes, *all* filesystems are supposed to be unmounted. This includes
any mount points watched by autofs. So why is autofs still running at
this point in the shutdown? The autofs daemon should be shut down
*prior* to /etc/rc6.d/S35networking, since at that point there's no
network left and autofs should no longer be trying to mount new
filesystems anyway!
And if I look at the autofs5 package, it has a wrong upstart job that
does 'stop on runlevel [!2345]', which does not properly serialize the
shutdown to ensure the service is stopped before we reach the unmounting
phase. Thus there's a race between /etc/init/rc.conf and
/etc/init/autofs.conf.
Reassigning to the autofs5 package.
** Package changed: sysvinit (Ubuntu) => autofs5 (Ubuntu)
** Changed in: autofs5 (Ubuntu)
Importance: Undecided => High
** Changed in: autofs5 (Ubuntu)
Assignee: Canonical Foundations Team (canonical-foundations) => Canonical Server Team (canonical-server)
--
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 “autofs5” 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/autofs5/+bug/988394/+subscriptions
More information about the foundations-bugs
mailing list