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