+++ This bug was initially created as a clone of Bug #652786 +++
Description of problem:
When rebooting or halting a system with the NFS service running, the NFS service won't stop.
Version-Release number of selected component (if applicable):
Operate system normally with NFS services running.
Steps to Reproduce:
1. Have NFS start either on runlevel or manual start
2. Reboot or halt system
NFS fails to stop. This leads to error messages that /var is in use.
NFS service stops. Clean reboot or halt without error messages.
If NFS is stopped manually before reboot/halt like so:
# service nfs stop
it will stop cleanly and show appropriate messages for various components. However, when the system is rebooting or halting no NFS messages are seen, seeming to indicate that it never shuts down.
--- Additional comment from firstname.lastname@example.org on 2010-11-23 14:54:08 EST ---
what does is the output of 'ps ax | grep nfsd' after the service is stopped?
--- Additional comment from email@example.com on 2010-11-23 15:29:02 EST ---
(In reply to comment #1)
> what does is the output of 'ps ax | grep nfsd' after the service is stopped?
Here is the result of stopping the nfs service:
[gus@falcon ~]$ sudo service nfs stop
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
[gus@falcon ~]$ ps ax|grep nfs
28923 pts/7 S+ 0:00 grep --color=auto nfs
As you can see, if the nfs service is stopped from the command line before the system is shut down, it stops cleanly. When the system is shut down with nfs running, I never see the "Shutting down ..." messages. It's as if the init script never gets called.
I did all my testing from run level 3 to eliminate GUI problems, and I don't have any clients connected. Because the system is shutting down, I'm not sure how to capture the console messages. I could try to set up a serial console and capture the shutdown sequence.
I also turned off almost all other services. I'll see what the bare minimum is to trigger the problem.
--- Additional comment from firstname.lastname@example.org on 2010-11-24 16:45:14 EST ---
I found the bug. It exists because the subsystem lock file name does not match the init script name. The /etc/rc.d/rc script checks to see if a subsytem is running by using the name of the init script for the subsystem file. In the case of the NFS subsystem, the NFS init script creates a subsysetm file /var/lock/subsys/nfsd. It should be nfs (no d on the end).
I noticed that this subsystem check affects several other systems also, for example CUPS and rsyslog. I wrote a tiny little program to check the subsystem status (derived from /etc/rc.d/rc):
# check if a subsystem is running based on what needs to be killed
# First, run the KILL scripts.
for i in /etc/rc$runlevel.d/K* ; do
# Check if the subsystem is already up.
echo "Checking for $subsys"
[ -f /var/lock/subsys/$subsys ] || [ -f /var/lock/subsys/$subsys.init ] || echo "$subsys does not exist"
Patch for /etc/init.d/nfs:
--- nfs.orig 2010-11-24 10:24:15.191119091 -0800
+++ nfs 2010-11-24 13:26:52.369559897 -0800
@@ -124,7 +124,7 @@
- touch /var/lock/subsys/nfsd
+ touch /var/lock/subsys/nfs
# Let rpc.idmapd know that rpc.mountd just started
[ -x /usr/sbin/rpc.idmapd ] && /sbin/service rpcidmapd condstart
--- Additional comment from email@example.com on 2010-11-24 18:25:07 EST ---
Created attachment 462775 [details]
patch to fix nfs shutdown problem
--- Additional comment from firstname.lastname@example.org on 2010-11-24 18:27:32 EST ---
I missed a few places. The attached patch gets all the remaining nfs vs nfsd substitutions.
--- Additional comment from email@example.com on 2010-12-01 12:07:35 EST ---
*** Bug 655726 has been marked as a duplicate of this bug. ***
--- Additional comment from firstname.lastname@example.org on 2010-12-02 08:56:00 EST ---
nfs-utils-1.2.3-2.fc14 has been submitted as an update for Fedora 14.
--- Additional comment from email@example.com on 2010-12-02 14:17:19 EST ---
nfs-utils-1.2.3-2.fc14 has been pushed to the Fedora 14 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update nfs-utils'. You can provide feedback for this update here: https://admin.fedoraproject.org/updates/nfs-utils-1.2.3-2.fc14
--- Additional comment from firstname.lastname@example.org on 2010-12-02 17:06:21 EST ---
There is a similar problem in rpc.idmapd which is also part of nfs-utils. Simple patch attached to fix.
--- Additional comment from email@example.com on 2010-12-02 17:08:09 EST ---
Created attachment 464390 [details]
patch to fix rpcidmapd shutdown problem
--- Additional comment from firstname.lastname@example.org on 2010-12-10 15:31:15 EST ---
nfs-utils-1.2.3-2.fc14 has been pushed to the Fedora 14 stable repository. If problems still persist, please make note of it in this bug report.
Steve, any chance of this making it into RHEL 6.0 errata or is 6.1 the target?
Running RHEL 6.3, this has resurfaced; I just traced through things to find the problem is the same and a coworker directed me to this bug. nfs-utils-1.2.3-26.el6.src.rpm is the version installed.