Bug 212269 - mount with UDP, nfs with TCP
mount with UDP, nfs with TCP
Product: Fedora
Classification: Fedora
Component: nfs-utils (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Steve Dickson
Ben Levenson
Depends On:
Blocks: 232667
  Show dependency treegraph
Reported: 2006-10-25 18:21 EDT by Jeff Bastian
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-07-17 16:35:49 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jeff Bastian 2006-10-25 18:21:16 EDT
Description of problem:
An earlier patch to the mount command in the util-linux package allowed mount
requests to use UDP and NFS traffic to over TCP (similar to Solaris).  This
fixes the problem of running out of reserved ports if automounting lots of
directories very quickly due to the TCP TIME_WAIT state.

However, if the NFS option 'proto=tcp' is specified, then the mount request
still happens over TCP.  All of our automount maps have proto=tcp,vers=3 in them
to make sure that we're using NFSv3 over TCP instead of v2 over UDP, so we still
have the bindresvport error.

Please allow mount to use UDP even if proto=tcp is specified for NFS traffic.

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

How reproducible:
Every time.

Steps to Reproduce:
1. mount -t nfs -o proto=tcp,vers=3 server:/some/dir /mnt
2. netstat -an | perl -n -e 'if($_ =~ m/.*TIME_WAIT.*/){$port=(split(/:/,(split
/\s+/)[3]))[1]; print $_ if $port<=1024;}'
Actual results:
netstat reports one port in the TIME_WAIT state

Expected results:
no ports should be in TIME_WAIT state

Additional info:
See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=169042 for earlier patch.
Comment 2 Steve Dickson 2006-11-01 09:40:30 EST
Question:  Why isn't removing the 'proto=tcp' a valid option? The default
protocol for both Solaris and Linux is TCP,  so I'm a bit confused as to
why that mount option is even needed.... 
Comment 3 Jeff Bastian 2006-11-01 10:32:04 EST
It's in our maps for our legacy systems.  We still have some Red Hat 7.2 systems
to run old software and the default is to mount UDP on those.

Comment 4 Jeff Bastian 2006-11-01 10:40:26 EST
Also, on Solaris, mount requests happen over UDP even when proto=tcp is specified.

(I've tested and verified this on both Solaris 8 and 10.)
Comment 7 Matthew Miller 2007-04-06 13:21:54 EDT
Fedora Core 5 and Fedora Core 6 are, as we're sure you've noticed, no longer
test releases. We're cleaning up the bug database and making sure important bug
reports filed against these test releases don't get lost. It would be helpful if
you could test this issue with a released version of Fedora or with the latest
development / test release. Thanks for your help and for your patience.

[This is a bulk message for all open FC5/FC6 test release bugs. I'm adding
myself to the CC list for each bug, so I'll see any comments you make after this
and do my best to make sure every issue gets proper attention.]
Comment 8 Jeff Layton 2007-07-17 16:35:49 EDT
Per our discussion in the RHEL-equivalent BZ, I'm going to close this WONTFIX.
Changing this is non-trivial, and would break people who are running NFS across
firewalls that block UDP. My suggestion is to use separate automount maps and
only use the tcp option on hosts that really need it.

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