mount.nfs does not downgrade NFS version when connecting to dual-stack NFS server

Bug #1391662 reported by Tyler Sable
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nfs-utils (Ubuntu)
Fix Released
Medium
Unassigned
Precise
Fix Released
Medium
Dave Chiluk

Bug Description

[Impact]
 When all the following exist
   - mounting a server using hostname.
   - the hostname resolves to both an ipv4 and ipv6 address
   - the nfs server only supports nfsv3
 Then.
 * The nfs client will not fall back to nfsv3, and will be unable to mount
   the share.
 * The following errors are printed in the logs.
"
mount: no type was given - I'll assume nfs because of the colon
mount.nfs: timeout set for Tue Nov 11 14:25:34 2014
mount.nfs: trying text-based options 'vers=4,addr=x.x.x.x,clientaddr=x.x.x.x'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,addr=xxxx:xxxx::xxxx,clientaddr=xxxx:xxxx::xxxx'
mount.nfs: mount(2): No route to host
mount.nfs: trying text-based options 'vers=4,addr=x.x.x.x,clientaddr=x.x.x.x'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,addr=xxxx:xxxx::xxxx,clientaddr=xxxx:xxxx::xxxx'
mount.nfs: mount(2): No route to host
"

[Test Case]

 * Restrict to nfsv3 on Server by setting RPCNFSDOPTS="--no-nfs-version 4" in /etc/default/nfs-kernel-server
 * Enable dns resolution for both ipv4 and ipv6 of the server.
 * Export a directory from the server (export -a)
 * Attempt to mount the nfs share from client

[Regression Potential]
 * Upstream backport that still exists upstream.

[Other Info]
 * Fix already exists in 2.6+ which means >trusty already have the fix.

__________________________________________________________________________
If you attempt to mount a share from a server that is dual stack (i.e. has both an A and a AAAA record in DNS) and NFSv3-only, mount.nfs goes into an infinite loop of retrying an NFS-v4 mount:

mount nfs-v3-server:/path /mnt -v
mount: no type was given - I'll assume nfs because of the colon
mount.nfs: timeout set for Tue Nov 11 14:25:34 2014
mount.nfs: trying text-based options 'vers=4,addr=x.x.x.x,clientaddr=x.x.x.x'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,addr=xxxx:xxxx::xxxx,clientaddr=xxxx:xxxx::xxxx'
mount.nfs: mount(2): No route to host
mount.nfs: trying text-based options 'vers=4,addr=x.x.x.x,clientaddr=x.x.x.x'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,addr=xxxx:xxxx::xxxx,clientaddr=xxxx:xxxx::xxxx'
mount.nfs: mount(2): No route to host

If we "hide" the AAAA record by setting an override in /etc/hosts, then mount.nfs correctly retries with NFSv3:

mount -t nfs nfs-v3-server:/path /mnt -v
mount.nfs: timeout set for Tue Nov 11 15:01:35 2014
mount.nfs: trying text-based options 'vers=4,addr=x.x.x.x,clientaddr=x.x.x.x'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=x.x.x.x'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying x.x.x.x prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying x.x.x.x prog 100005 vers 3 prot UDP port 635
nfs-v3-server:/path on /mnt type nfs (rw)

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: nfs-common 1:1.2.5-3ubuntu3.1
ProcVersionSignature: Ubuntu 3.2.0-70.105-generic 3.2.63
Uname: Linux 3.2.0-70-generic x86_64
ApportVersion: 2.0.1-0ubuntu17.8
Architecture: amd64
Date: Tue Nov 11 15:56:25 2014
InstallationMedia: Ubuntu-Server 10.04.2 LTS "Lucid Lynx" - Release amd64 (20110211.1)
MarkForUpload: True
ProcEnviron:
 SHELL=/usr/bin/ksh
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_US
SourcePackage: nfs-utils
UpgradeStatus: Upgraded to precise on 2013-10-07 (400 days ago)

Revision history for this message
Tyler Sable (tsable-a) wrote :
description: updated
Dave Chiluk (chiluk)
Changed in nfs-utils (Ubuntu):
assignee: nobody → Dave Chiluk (chiluk)
Revision history for this message
Dave Chiluk (chiluk) wrote :

I have built a test package with this commit for precise
http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=9da66f8898a6

I have placed it http://people.canonical.com/~chiluk/lp1391662/

Unfortunately my environments do not have ipv6 name resolution adequately functioning to fully test this fix.

@Tyler Sable - Can you test this and let me know if it resolves the issue you are seeing? Otherwise I will work next week to get ipv6 functional in my labs.

Thanks

Revision history for this message
Dave Chiluk (chiluk) wrote :
Changed in nfs-utils (Ubuntu):
importance: Undecided → Medium
status: New → In Progress
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "Proposed debdiff" seems to be a debdiff. The ubuntu-sponsors team has been subscribed to the bug report so that they can review and hopefully sponsor the debdiff. If the attachment isn't a patch, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are member of the ~ubuntu-sponsors, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issue please contact him.]

tags: added: patch
Revision history for this message
Dave Chiluk (chiluk) wrote :

Got this update from Tyler through UA.

"I have installed the package that Dave provided and it seems to resolve the problem!"

Tyler please +1 here as well.

tags: added: cts
Dave Chiluk (chiluk)
description: updated
Revision history for this message
Tyler Sable (tsable-a) wrote :

Installing the testing package with this debdiff has resolved the issue, according to my testing.

Chris J Arges (arges)
Changed in nfs-utils (Ubuntu):
status: In Progress → Fix Released
Changed in nfs-utils (Ubuntu Precise):
assignee: nobody → Dave Chiluk (chiluk)
importance: Undecided → Medium
status: New → In Progress
Changed in nfs-utils (Ubuntu):
assignee: Dave Chiluk (chiluk) → nobody
Dave Chiluk (chiluk)
description: updated
description: updated
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Tyler, or anyone else affected,

Accepted nfs-utils into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/nfs-utils/1:1.2.5-3ubuntu3.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nfs-utils (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Tyler Sable (tsable-a) wrote :

Installing package nfs-common:1.2.5-3ubuntu3.2 resolved the problem.

Revision history for this message
Dave Chiluk (chiluk) wrote :

Thanks for doing that verification Tyler.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nfs-utils - 1:1.2.5-3ubuntu3.2

---------------
nfs-utils (1:1.2.5-3ubuntu3.2) precise; urgency=medium

  * Fix mount.nfs so that it falls back to v3 when ipv4 and ipv6 name resolution
    is present, but nfsv4 is not. present. LP: #1391662
 -- Dave Chiluk <email address hidden> Tue, 18 Nov 2014 10:55:28 -0600

Changed in nfs-utils (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Chris J Arges (arges) wrote : Update Released

The verification of the Stable Release Update for nfs-utils has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.