Bug 107583 - Rapid creation of multiple NFS over TCP mounts fails
Summary: Rapid creation of multiple NFS over TCP mounts fails
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: nfs-utils
Version: 2.1
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Steve Dickson
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2003-10-20 20:14 UTC by Ian McLeod
Modified: 2007-11-30 22:06 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-07-20 10:47:29 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Ian McLeod 2003-10-20 20:14:07 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830

Description of problem:
Attempts to mount more than about 140 NFS over TCP mounts from an AS 2.1 client
fail with an "unable to bind to privileged port" error.

This error seems to be the result of a large number of TCP connections on
privileged ports being held in TIME_WAIT.  These connections are on ports 2049
and 32786.  (statd and portmapper).

These errors subside if you wait 60 seconds for the TIME_WAIT sockets to clear.

These errors also occur in AS 3 Beta 2

Solaris _does not_ suffer from this same problem.  We believe this is because it
uses UDP RPC calls for communicating with portmapper and statd.

Version-Release number of selected component (if applicable):
mount-2.11g-6

How reproducible:
Always

Steps to Reproduce:
1) Create 1000 distinct mount points on a server that supports TCP.  In our
case, we have used both NetApp filers and Solaris NFS servers.

2) Write a shell loop on a Linux client that mounts these exports one after the
other.


Actual Results:  The script will fail after about 140 mounts.  It will report
"cannot bind to priveleged port" errors.

Expected Results:  The script should have been able to create almost 800 mounts
before failing due to lack of ports.

Additional info:

Comment 1 Steve Dickson 2003-10-20 20:25:18 UTC
I think the real problem here is that all of the setup communication
needed for the mount (i.e communication to and from portmapper, lockd, statd)
puts privilege ports in a temporary unusable state (i.e. TIME_WAIT). 

Having the setup communications use UDP sockets instead TCP
would take care of the problem.

Comment 2 Elliot Lee 2004-08-20 19:28:32 UTC
Steve, you know way better than I what needs doing - hope it's ok to
assign this bug to you in the interest of making progress.


Comment 3 Jeff Layton 2007-07-20 10:47:29 UTC
Given that AS 2.1 is now in maintenance mode, I don't see us changing this
there. Subsequent RHEL versions should be much better about this now.



Note You need to log in before you can comment on or make changes to this bug.