[Bug 1818121] Re: NFSv4 shares with option `-vers=4.0` are not mounted: mount(nfs): no hosts available

Launchpad Bug Tracker 1818121 at bugs.launchpad.net
Mon Mar 11 15:23:25 UTC 2019


This bug was fixed in the package autofs - 5.1.2-4ubuntu2

---------------
autofs (5.1.2-4ubuntu2) disco; urgency=medium

  * d/p/autofs-5.1.3-handle-additional-nfs-versions-in-mount.patch:
    fix usage of NFS 4.x subversions (LP: #1818121)

 -- Christian Ehrhardt <christian.ehrhardt at canonical.com>  Thu, 07 Mar
2019 13:03:35 +0100

** Changed in: autofs (Ubuntu)
       Status: Triaged => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to autofs in Ubuntu.
https://bugs.launchpad.net/bugs/1818121

Title:
  NFSv4 shares with option `-vers=4.0` are not mounted: mount(nfs): no
  hosts available

Status in autofs package in Ubuntu:
  Fix Released
Status in autofs source package in Bionic:
  Confirmed
Status in autofs source package in Cosmic:
  Confirmed

Bug description:
  [Impact]

   * Specifying NFS v4 works, but using subversion fails.
     To make it worse v4.2 is considered not v4 at all which is not what 
     users expect or need. If then your server does not support v4 the
     mount fails.

   * This is fixed upstream for a while, backport the patch from there to at 
     lest the latest LTS (older ones are unlikely to suddenly need version 
     4.x).

  [Test Case]

   * This is a bit tricky you need a NFS server that is "less tolerant" liek 
     the one reported in comment #5. If you have such a server set up 
     configure your exports following [1] (or similar)
     I usually place a file called "testfile" in that export to check if it 
     exists, feel free to do similarly.
   * Then on the client side install autofs and follow [2]
     The summary of those steps is:
     - you need the autofs4 kernel module which is in linux-modules-extra
       so install that if you don't have it.
     - configure your autofs.master to use a nfs mount for example
       $ echo "/nfs/ /etc/auto.nfs" | sudo tee -a /etc/auto.master
       $ sudo mkdir -p /nfs/testmount
       $ echo "testmount -fstype=nfs,rw,retry=0 
         <SERVERIP>:/export/users/testmount" | sudo tee -a /etc/auto.nfs
       $ ll /nfs/testmount/testfile
         -rw-r--r-- 1 root root 0 Mar 1 10:43 /nfs/testmount/testfile

       Without the fix it will fail to mount and "/nfs/testmount" will be an 
       empty unmoutned directory.

       With the fix you will see the mount working
       (from mount output)
       192.168.122.55:/export/users/testmount on /nfs/testmount type nfs4 
       (rw,relatime,vers=4.2,rsize=65536,wsize=65536,namlen=255,hard,
       proto=tcp,timeo=600,retrans=2,sec=sys,
       clientaddr=192.168.122.226,local_lock=none,addr=192.168.122.55)

  [1]: https://help.ubuntu.com/community/SettingUpNFSHowTo
  [2]: https://wiki.ubuntuusers.de/Autofs/

  [Regression Potential]

   * The change is minimal and just changes from a full string match to a 
     prefix match. In theory that could make configurations which today 
     specify 4.2 (and silently fail doing so as this is broken) then 
     "suddenly" really use v4 which it currently does not always do.
     v4.2 currently is mounted as v4 and after the change will be mounted as 
     v4.2 as specified - but that is the fix and not so much a regression.

  
  [Other Info]
   
   * n/a

  
  ---

  With Ubuntu 18.10 and autofs 5.1.2-4ubuntu1, mounting NFSv4 shares
  does not work. Directly mounting them with `mount.nfs` works.

  ```
  Feb 28 18:08:30 nfsclient automount[22978]: expire_proc: exp_proc = 131147807650128 path /home_mariux
  Feb 28 18:08:30 nfsclient automount[22978]: expire_cleanup: got thid 131147807650128 path /home_mariux stat 0
  Feb 28 18:08:30 nfsclient automount[22978]: expire_cleanup: sigchld: exp 131147807650128 finished, switching from 2 to 1
  Feb 28 18:08:30 nfsclient automount[22978]: st_ready: st_ready(): state = 2 path /home_mariux
  Feb 28 18:08:32 nfsclient automount[22978]: handle_packet: type = 3
  Feb 28 18:08:32 nfsclient automount[22978]: handle_packet_missing_indirect: token 46, name joey, request pid 28647
  Feb 28 18:08:32 nfsclient automount[22978]: attempting to mount entry /home_mariux/joey
  Feb 28 18:08:32 nfsclient automount[22978]: lookup_mount: lookup(file): looking up joey
  Feb 28 18:08:32 nfsclient automount[22978]: lookup_mount: lookup(file): joey -> claptrap:/amd/claptrap/2/home/edv/joey
  Feb 28 18:08:32 nfsclient automount[22978]: parse_mount: parse(sun): expanded entry: claptrap:/amd/claptrap/2/home/edv/joey
  Feb 28 18:08:32 nfsclient automount[22978]: parse_mount: parse(sun): gathered options: nosuid
  Feb 28 18:08:32 nfsclient automount[22978]: parse_mount: parse(sun): dequote("claptrap:/amd/claptrap/2/home/edv/joey") -> claptrap:/amd/claptrap/2/home/edv/bucz
  Feb 28 18:08:32 nfsclient automount[22978]: parse_mount: parse(sun): core of entry: options=nosuid, loc=claptrap:/amd/claptrap/2/home/edv/joey
  Feb 28 18:08:32 nfsclient automount[22978]: sun_mount: parse(sun): mounting root /home_mariux, mountpoint joey, what claptrap:/amd/claptrap/2/home/edv/joey, f
  Feb 28 18:08:32 nfsclient automount[22978]: mount_mount: mount(nfs): root=/home_mariux name=joey what=claptrap:/amd/claptrap/2/home/edv/joey, fstype=nfs, opti
  Feb 28 18:08:32 nfsclient automount[22978]: mount_mount: mount(nfs): nfs options="nosuid", nobind=0, nosymlink=0, ro=0
  Feb 28 18:08:32 nfsclient automount[22978]: get_nfs_info: called with host claptrap(141.14.16.132) proto 6 version 0x30
  Feb 28 18:08:32 nfsclient automount[22978]: get_nfs_info: called with host claptrap(141.14.16.132) proto 17 version 0x30
  Feb 28 18:08:32 nfsclient automount[22978]: mount(nfs): no hosts available
  Feb 28 18:08:32 nfsclient automount[22978]: dev_ioctl_send_fail: token = 46
  Feb 28 18:08:32 nfsclient automount[22978]: failed to mount /home_mariux/joey
  Feb 28 18:08:32 nfsclient automount[22978]: st_readmap: state 1 path /home_mariux
  Feb 28 18:08:32 nfsclient automount[22978]: handle_packet: type = 3
  Feb 28 18:08:32 nfsclient automount[22978]: handle_packet_missing_indirect: token 47, name joey, request pid 28647
  Feb 28 18:08:32 nfsclient automount[22978]: dev_ioctl_send_fail: token = 47
  Feb 28 18:08:32 nfsclient automount[22978]: re-reading map for /home_mariux
  Feb 28 18:08:32 nfsclient automount[22978]: lookup_nss_read_map: reading map file /etc/automount/auto.home
  Feb 28 18:08:32 nfsclient automount[22978]: do_init: parse(sun): init gathered global options: nosuid
  Feb 28 18:08:32 nfsclient automount[22978]: st_ready: st_ready(): state = 4 path /home_mariux
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/autofs/+bug/1818121/+subscriptions



More information about the foundations-bugs mailing list