Bug 703210

Summary: System halt does not unmount mount points with nfs in the path name.
Product: Red Hat Enterprise Linux 6 Reporter: Bill Nottingham <notting>
Component: initscriptsAssignee: initscripts Maintenance Team <initscripts-maint-list>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: low Docs Contact:
Priority: low    
Version: 6.2CC: asersen, azelinka, jmueller, notting, plautrba, rvokal
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: initscripts-9.03.24-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 703203 Environment:
Last Closed: 2011-12-06 18:09:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 703203    
Bug Blocks:    

Description Bill Nottingham 2011-05-09 16:39:05 UTC
+++ This bug was initially created as a clone of Bug #703203 +++

Created attachment 497858 [details]
Unified diff to fix the umount error in /etc/init.d/halt.

Description of problem:

If you have a mount point setup with the word "nfs" anywhere in the path, the mount will not be unmounted at reboot/halt time.

This also affects the keywords loopfs, autofs, cifs, smbfs, ncpfs, sysfs.


Version-Release number of selected component (if applicable):

initscripts-8.45.33-1.el5


How reproducible:

Always

Steps to Reproduce:
1. Create a mount point called /shares and mount a device there.
2. Create another mount point called /shares/nfsfiles and mount a device there (in our case we use LVM volumes for both mount points).
3. sudo reboot
  
Actual results:

During the halt process you will receive "umount: /shares: device is busy" errors because /shares/nfsfiles was not unmounted.

Expected results:

The system unmounts /shares/nfsfiles then unmounts /shares.

Additional info:

This problem is caused by the awk statements in /etc/init.d/halt.  Specifically:

/(loopfs|autofs|nfs|cifs|smbfs|ncpfs|sysfs|^none|^\/dev\/ram|^\/dev\/root$)/ {next}

That will match the keywords anywhere in a line in /proc/mounts, so will match NFS mounts (nfs in 3rd column) and nfs in paths (/shares/nfsfiles in 2nd column).

The fix to this would be to change that awk statement to:

$3 ~ /(loopfs|autofs|nfs|cifs|smbfs|ncpfs|sysfs)/ {next}
/(^none|^\/dev\/ram|^\/dev\/root$)/ {next}

I've attached a unified diff file with the fix.

--- Additional comment from notting on 2011-05-09 12:37:42 EDT ---

Thanks, added to git master as commit a8295af.

Note that this would require them not getting unmounted in netfs stop, unless I'm missing something?

Comment 6 errata-xmlrpc 2011-12-06 18:09:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2011-1528.html