Attached is a debdiff for Focal which fixes this issue. ** Summary changed:
- Issue with nfs4.0 mounts after upgrade to 3.6 + Fix minor version parsing when '-t nfs4' and '-o vers=4.x' are used together ** Summary changed: - Fix minor version parsing when '-t nfs4' and '-o vers=4.x' are used together + mount.nfs: Fix minor version parsing when '-t nfs4' and '-o vers=4.x' are used together ** Description changed: - Hello, + [Impact] - On Ubuntu Server 20.04.6 LTS with the update of nfs-common package => - "nfs-common/focal-updates 1:1.3.4-2.5ubuntu3.5" to "nfs-common/focal- - updates 1:1.3.4-2.5ubuntu3.6" I started having issues mounting ntf4.0 - volumes. The NFS server supports 4.0, 4.1 and 4.2 + When specifying both '-t nfs4' and '-o vers=4.x' on the mount command + line, mount.nfs ignores any specific version set with '-o vers=4.x' or + '-o vers=4,minorversion=x', and simply attempts version negotiation, + which due to my recent changes in bug 2049262, would land on the highest + supported nfs version, likely 4.2. - The issue appears when using '-t ntfs4' and setting the version using -o - vers=. + Users who specify what version they want should get the version they ask + for, and thus, this is a regression introduced in 1:1.3.4-2.5ubuntu3.6. - When using 1:1.3.4-2.5ubuntu3.5 I am able to use '-o vers' to set the version when using -t ntfs4 eg - mount -t nfs4 -o vers=4.0 -vvv SERVER.local:/srv/data /mnt/test - mount.nfs4: trying text-based options 'vers=4.0,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx' + A workaround is to drop '-t nfs4' and to use mount.nfs directly instead, + i.e.: - mount -t nfs4 -o vers=4.1 -vvv SERVER.local:/srv/data /mnt/test - mount.nfs4: trying text-based options 'vers=4.1,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx' + $ sudo mount.nfs -o vers=4.1 -vvv jammy-nfs-server:/ /mnt - However after upgrading to 1:1.3.4-2.5ubuntu3.6 it always mounts as nfs4.2 - mount -t nfs4 -o vers=4.0 -vvv SERVER.local:/srv/data /mnt/test - mount.nfs4: trying text-based options 'vers=4.2,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx' + [Testcase] - mount -t nfs4 -o vers=4.1 -vvv SERVER.local:/srv/data /mnt/test - mount.nfs4: trying text-based options 'vers=4.2,addr=xx.xx.xx.xx,clientaddr=xx.xx.xx.xx' + Create two VMs, one jammy and one focal. - I would have expected the specified version in -o vers to be used when - using '-t nfs4' + The jammy VM will be the server. - When using '-t nfs' I am able to mount volumes as nfs 4.0. I understand - that 1:1.3.4-2.5ubuntu3.6 fixes version negotiation so maybe this isn't - a bug and the intent with '-t nfs4' is to always use the highest - version. If so please feel free to close the report + Server VM: + $ sudo hostnamectl set-hostname jammy-nfs-server + $ sudo apt update && sudo apt upgrade -y + $ sudo apt install nfs-kernel-server + $ sudo mkdir /export + $ sudo mkdir /export/users + $ sudo mkdir /home/users + $ sudo vi /etc/fstab # add the following line: + /home/users /export/users none bind 0 0 + $ sudo mount -a + $ sudo vi /etc/exports # add the following lines: + /export 192.168.122.0/24(rw,fsid=0,no_subtree_check,sync) + /export/users 192.168.122.0/24(rw,nohide,insecure,no_subtree_check,sync) + $ sudo systemctl restart nfs-server.service + + Focal VM: + $ sudo hostnamectl set-hostname focal-nfs-client + $ sudo apt update && sudo apt upgrade -y + $ sudo apt install nfs-common + + And then try mounting with both '-t nfs4' and '-o vers=4.1': + + $ sudo mount -t nfs4 -o vers=4.1 -vvv jammy-nfs-server:/ /mnt + mount.nfs4: timeout set for Wed Apr 3 00:51:23 2024 + mount.nfs4: trying text-based options 'vers=4.2,addr=192.168.122.217,clientaddr=192.168.122.9' + + and then try with both '-t nfs4' and '-o vers=4,minorversion=1': + + $ sudo mount -t nfs4 -o vers=4,minorversion=1 -vvv jammy-nfs-server:/ /mnt + mount.nfs4: timeout set for Wed Apr 3 02:19:03 2024 + mount.nfs4: trying text-based options 'minorversion=1,vers=4.2,addr=192.168.122.217,clientaddr=192.168.122.9' + + In each of those mounts, it incorrectly uses protocol version 4.2, + instead of requested 4.1. + + If you install the test packages in the following ppa: + + https://launchpad.net/~mruffell/+archive/ubuntu/lp2059197-test + + then vers should always be 4.1, instead of 4.2. + + [Where problems can occur] + + It is quite clear now that changing version negotiation and parsing is + quite problematic, after the number of regressions the previous + 1:1.3.4-2.5ubuntu3.6 caused the community, and the sheer number of + commits upstream took to resolve lingering issues. + + We need to be careful, to make sure we don't introduce any further + regressions. + + This time, we are only changing how mount.nfs parses and processes + command line arguments for version specification, and not changing + version negotiation itself. This could impact NFS clients, when they go + to mount NFS filesystems. + + If a regression were to occur, then users might have to manually mount + their NFS filesystems or look into autofs. There should be no breaking + changes to any behaviour when mounting NFS filesystems. + + There are no changes to nfs server. + + [Other Info] + + This was fixed multiple times, across the following three commits: + + commit 1e3ca7fe199531a372bb8e1c1033d8973097be50 + Author: NeilBrown <ne...@suse.com> + Date: Wed Jul 26 13:47:42 2017 -0400 + Subject: mount: move handling of "-t nfs4" into nfs_nfs_version() + Link: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commitdiff;h=1e3ca7fe199531a372bb8e1c1033d8973097be50 + + commit 050153ef6a86ff5ab06ef65be36336824a323779 + Author: NeilBrown <ne...@suse.com> + Date: Wed Jul 26 13:51:51 2017 -0400 + Subject: mount: Fix problems with parsing minorversion= + Link: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commitdiff;h=050153ef6a86ff5ab06ef65be36336824a323779 + + commit 71b807e1a69940beb31fdeb481c2e54509e8bd32 + Author: Steve Dickson <ste...@redhat.com> + Date: Thu Mar 1 13:52:47 2018 -0500 + Subject: mount.nfs: minorversion setting is being ignored with the -t flag + Link: https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commitdiff;h=71b807e1a69940beb31fdeb481c2e54509e8bd32 + + Jammy has all of these, and does not need any fixes. ** Tags added: seg ** Patch added: "Debdiff for nfs-utils on Focal" https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/2059197/+attachment/5761398/+files/lp2059197_focal.debdiff -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2059197 Title: mount.nfs: Fix minor version parsing when '-t nfs4' and '-o vers=4.x' are used together To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/2059197/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs