Red Hat Bugzilla – Bug 183130
mount leaks socket descriptors under some conditions
Last modified: 2007-11-30 17:07:09 EST
Description of problem:
if try_mount_one function in the mount utility follows the retry_nfs goto
(usually occuring because of a local mount error following a successful contact
of the nfs server, the mount utility will leak socket descriptors. This is due
to the fact that nfsmount records the socket that is bound and connected to an
nfs server in a static data structure which gets overwritten without being first
closed on repetative calls to nfsmount through the retry_nfs path in try_mount_one.
Version-Release number of selected component (if applicable):
2.11y and forward
Steps to Reproduce:
1.add ~600 nfs mounts to /etc/fstab
2.issue a service netfs start
not all mounts are mounted. mounts begin failing eventually with EADDRINUSE
all mounts successful.
I've written the attached patch to correct this problem by initalizing the
static data in nfsmount() and checking it on each entry to the function. If it
is greater than zero it is closed before attempting to open a new socket.
Tested by myself and the reporter with successful results.
Created attachment 125282 [details]
patch to correct mount socket leak