Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1496822 - mount.nfs calls mount() with nfsvers setting from nfsmount.conf appended to version specified on command line
mount.nfs calls mount() with nfsvers setting from nfsmount.conf appended to v...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: nfs-utils (Show other bugs)
7.4
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Steve Dickson
Yongcheng Yang
: Patch, Regression, TestCaseProvided
Depends On:
Blocks: 1420851 1469559
  Show dependency treegraph
 
Reported: 2017-09-28 09:28 EDT by Frank Sorenson
Modified: 2018-04-10 14:22 EDT (History)
7 users (show)

See Also:
Fixed In Version: nfs-utils-1.3.0-0.50.el7
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-04-10 14:21:01 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:0981 None None None 2018-04-10 14:22 EDT

  None (edit)
Description Frank Sorenson 2017-09-28 09:28:27 EDT
Description of problem:

When the 'nfsvers=' configuration setting is present in the /etc/nfsmount.conf file, calling mount.nfs with an nfs version specified will result in mount.nfs calling mount() with the version from nfsmount.conf appended to the option provided to mount.nfs.


Version-Release number of selected component (if applicable):
nfs-utils-1.3.0-0.48.el7.x86_64



How reproducible:

see below


Steps to Reproduce:

    create or set the nfsvers= line in /etc/nfsmount.conf

    call mount with a version specified as an option


Actual results:

mount() syscall is made with 'nfsvers' configuration option appended

  # egrep -i ^nfsvers /etc/nfsmount.conf
  Nfsvers=4

  # mount -vvvv -t nfs nfsserver:/exports /mnt/tmp -o vers=3
  mount.nfs: timeout set for Thu Sep 28 08:07:48 2017
  mount.nfs: trying text-based options 'vers=3,nfsvers=4,addr=192.168.122.72'
  mount.nfs: prog 100003, trying vers=3, prot=6
  mount.nfs: trying 192.168.122.72 prog 100003 vers 3 prot TCP port 2049
  mount.nfs: prog 100005, trying vers=3, prot=17
  mount.nfs: trying 192.168.122.72 prog 100005 vers 3 prot UDP port 20048


  # egrep -i ^nfsvers /etc/nfsmount.conf
  Nfsvers=3

  # strace -qfttTvys 1024 -etrace=mount mount -vvvv -t nfs nfsserver:/exports /mnt/tmp -o vers=4.0
  mount.nfs: timeout set for Thu Sep 28 08:20:34 2017
  mount.nfs: trying text-based options 'vers=4.0,nfsvers=3,addr=192.168.122.72,clientaddr=192.168.122.73'
  [pid 10451] 08:18:34.233533 mount("nfsserver:/exports", "/mnt/tmp", "nfs", 0, "vers=4.0,nfsvers=3,addr=192.168.122.72,clientaddr=192.168.122.73") = 0 <0.010063>

  # grep nfsserver /proc/mounts
  nfsserver:/exports /mnt/tmp nfs rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.122.72,mountvers=3,mountproto=tcp,local_lock=none,addr=192.168.122.72 0 0


  # egrep -i ^nfsvers /etc/nfsmount.conf
  Nfsvers=3

  # strace -qfttTvys 1024 -etrace=mount mount -vvvv -t nfs nfsserver:/exports /mnt/tmp -o vers=4.1
  mount.nfs: timeout set for Thu Sep 28 08:21:59 2017
  mount.nfs: trying text-based options 'vers=4.1,nfsvers=3,addr=192.168.122.72,clientaddr=192.168.122.73'
  [pid 10492] 08:19:59.288583 mount("nfsserver:/exports", "/mnt/tmp", "nfs", 0, "vers=4.1,nfsvers=3,addr=192.168.122.72,clientaddr=192.168.122.73") = -1 EINVAL (Invalid argument) <0.002484>
  mount.nfs: mount(2): Invalid argument
  mount.nfs: an incorrect mount option was specified
  [pid 10492] 08:19:59.293117 +++ exited with 32 +++


Expected results:

  version specified as command-line option overrides default options in nfsmount.conf, and only one version is provided in the call to mount()


Additional info:
Comment 4 Yongcheng Yang 2017-09-28 20:45:38 EDT
This problem also exists in Fedora 26.

Looks like it only occurs when specifying the minor version
while it can parse successfully with "-o vers=4" or "-t nfs4"

[root@fedora26 ~]# cat /etc/redhat-release 
Fedora release 26 (Twenty Six)
[root@fedora26 ~]# rpm -q nfs-utils
nfs-utils-2.1.1-5.rc5.fc26.x86_64
[root@fedora26 ~]# 
[root@fedora26 ~]# egrep -i ^nfsvers /etc/nfsmount.conf
Nfsvers=3
[root@fedora26 ~]# mount -t nfs localhost:/export_test /mnt/ -o vers=4 -vvv
mount.nfs: timeout set for Thu Sep 28 20:35:06 2017
mount.nfs: trying text-based options 'vers=4.2,addr=::1,clientaddr=::1'
[root@fedora26 ~]# cat /proc/mounts | grep mnt
localhost:/export_test /mnt nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=::1,local_lock=none,addr=::1 0 0
[root@fedora26 ~]# umount /mnt/
[root@fedora26 ~]# 
################## Reproduced!
[root@fedora26 ~]# mount -t nfs localhost:/export_test /mnt/ -o vers=4.0 -vvv
mount.nfs: timeout set for Thu Sep 28 20:35:28 2017
mount.nfs: trying text-based options 'vers=4.0,nfsvers=3,addr=::1,clientaddr=::1' <<<<<<
[root@fedora26 ~]# cat /proc/mounts | grep mnt
localhost:/export_test /mnt nfs rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,timeo=600,retrans=2,sec=sys,mountaddr=::1,mountvers=3,mountproto=tcp6,local_lock=none,addr=::1 0 0
[root@fedora26 ~]# umount /mnt/
[root@fedora26 ~]# mount -t nfs localhost:/export_test /mnt/ -o vers=4.2 -vvv
mount.nfs: timeout set for Thu Sep 28 20:36:08 2017
mount.nfs: trying text-based options 'vers=4.2,nfsvers=3,addr=::1,clientaddr=::1' <<<<<<
mount.nfs: mount(2): Invalid argument
mount.nfs: an incorrect mount option was specified
[root@fedora26 ~]# cat /proc/mounts | grep mnt
[root@fedora26 ~]# cat /proc/fs/nfsd/versions 
-2 +3 +4 +4.1 +4.2
[root@fedora26 ~]#
Comment 5 Justin Mitchell 2017-10-04 06:08:48 EDT
Patch posted upstream http://www.spinics.net/lists/linux-nfs/msg65755.html
Comment 6 Steve Dickson 2017-10-05 10:58:20 EDT
The upstream commit....

commit 8110103404b35d9e86057ef0764f8aa87585f455 
Author: Justin Mitchell <jumitche@redhat.com>
Date:   Thu Oct 5 10:40:51 2017 -0400

    mount.nfs: merge in vers= and nfsvers= options
Comment 8 Yongcheng Yang 2017-10-19 01:54:17 EDT
verified with nfs-utils-1.3.0-0.50.el7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[01:46:03 root@ ~~]# cat /etc/nfsmount.conf
[ Server "localhost" ]
Nfsvers=3

[01:46:03 root@ ~~]# mount.nfs localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf -vvv -o vers=3
mount.nfs: trying ::1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: trying ::1 prog 100005 vers 3 prot UDP port 20048
mount.nfs: timeout set for Thu Oct 19 01:48:03 2017
mount.nfs: trying text-based options 'vers=3,addr=::1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: prog 100005, trying vers=3, prot=17
[01:46:03 root@ ~~]# cat /proc/mounts | grep /mnt/nfsmp-nfsmount-conf
localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf nfs rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,timeo=600,retrans=2,sec=sys,mountaddr=::1,mountvers=3,mountport=20048,mountproto=udp6,local_lock=none,addr=::1 0 0
^^^^^^^^^^^^^^^^^^^^^^^^  Mounted with nfsvers 3, expected as 3
[01:46:03 root@ ~~]# umount /mnt/nfsmp-nfsmount-conf

[01:46:03 root@ ~~]# mount.nfs localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf -vvv -o vers=4.0
mount.nfs: timeout set for Thu Oct 19 01:48:03 2017
mount.nfs: trying text-based options 'vers=4.0,addr=::1,clientaddr=::1'
[01:46:03 root@ ~~]# cat /proc/mounts | grep /mnt/nfsmp-nfsmount-conf
localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf nfs4 rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=::1,local_lock=none,addr=::1 0 0
^^^^^^^^^^^^^^^^^^^^^^^^^^ Mounted with nfsvers 4.0, expected as 4.0
[01:46:03 root@ ~~]# umount /mnt/nfsmp-nfsmount-conf

[01:46:03 root@ ~~]# mount.nfs localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf -vvv -o vers=4.1
mount.nfs: timeout set for Thu Oct 19 01:48:03 2017
mount.nfs: trying text-based options 'vers=4.1,addr=::1,clientaddr=::1'
[01:46:03 root@ ~~]# cat /proc/mounts | grep /mnt/nfsmp-nfsmount-conf
localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf nfs4 rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=::1,local_lock=none,addr=::1 0 0
^^^^^^^^^^^^^^^^^^^^^^^^^^ Mounted with nfsvers 4.1, expected as 4.1
[01:46:03 root@ ~~]# umount /mnt/nfsmp-nfsmount-conf

[01:46:04 root@ ~~]# mount.nfs localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf -vvv -o vers=4.2
mount.nfs: timeout set for Thu Oct 19 01:48:04 2017
mount.nfs: trying text-based options 'vers=4.2,addr=::1,clientaddr=::1'
[01:46:04 root@ ~~]# cat /proc/mounts | grep /mnt/nfsmp-nfsmount-conf
localhost:/exportDir-nfsmount-conf /mnt/nfsmp-nfsmount-conf nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=::1,local_lock=none,addr=::1 0 0
^^^^^^^^^^^^^^^^^^^^^^^^^^ Mounted with nfsvers 4.2, expected as 4.2
[01:46:04 root@ ~~]# umount /mnt/nfsmp-nfsmount-conf
Comment 13 errata-xmlrpc 2018-04-10 14:21:01 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:0981

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