[Bug 1871214] Re: [SRU] nfsd doesn't start if exports depend on mount
Rodrigo Barbieri
1871214 at bugs.launchpad.net
Tue Jun 16 22:13:33 UTC 2020
Performed validation according to test case, attached output, updated
tags
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to nfs-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1871214
Title:
[SRU] nfsd doesn't start if exports depend on mount
Status in nfs-utils package in Ubuntu:
Fix Released
Status in nfs-utils source package in Bionic:
In Progress
Status in nfs-utils source package in Eoan:
In Progress
Status in nfs-utils source package in Focal:
Fix Committed
Status in nfs-utils source package in Groovy:
Fix Released
Bug description:
Reproduced in Bionic and Focal, packages 1:1.3.4-2.1ubuntu5.2 and
1:1.3.4-2.5ubuntu3 respectively.
Steps to reproduce:
1) Set up a ISCSI client to a 1GB+ volume, mount it in /data and set fstab to mount at boot
2) Create a folder in /data like /data/dir1 and set up /etc/exports to export it
3) Reboot
4) Notice nfs-server does not start. Check journalctl and see it was because of "exportfs -r" returning -1 because /data/dir1 is not available.
In Xenial (1:1.2.8-9ubuntu12.2), exportfs always returns 0, so this
bug is not present there.
This can be workaroundable in two ways:
1) Editing nfs-server.service and adding "-" in
"ExecStartPre=/usr/sbin/exportfs -r" to be
"ExecStartPre=-/usr/sbin/exportfs -r". This will retain xenial
behavior.
2) Editing nfs-server.service and removing "Before=remote-fs-
pre.target" and adding "RequiresMountsFor=/data". This will cause the
systemd service load ordering to change, and nfs-server will wait for
/data to be available.
#2 is the upstream approach with commit [0] where this new comment
identifies mount dependencies and automatically sets up
RequiresMountFor.
[0] http://git.linux-nfs.org/?p=steved/nfs-
utils.git;a=commitdiff;h=4776bd0599420f9d073c9e2601ed438062dccd19
=======================================================================
[Impact]
Users attempting to export folders from iSCSI or any remote mounted
filesystem will experience their exports not being available at system
start up, requiring workarounds or manual intervention.
[Test case]
1. Reproducing the bug:
1a. Set up a ISCSI client to a 1GB+ volume
1b. Format /dev/<device> using mkfs.xfs
1c. Mount it in /data and set fstab as follows to mount at boot
UUID="<uuid_from_blkid>" /data xfs defaults,auto,_netdev 0 0
1d. Create a folder in /data like /data/dir1 and set permissions as
follows
chmod 777 /data/dir1
chown nobody:nogroup /data/dir1
1e. Set up /etc/exports as follows to export it
/data/dir1 *(rw,async,root_squash,subtree_check)
1f. Reboot
1g. Notice nfs-server does not start. Running "showmount -e" displays error.
2. No cleanup necessary
3. Install the updated package that contains the fix
4. Confirming the fix:
4a. Reboot
4b. Notice nfs-server starts sucessfully, "showmount -e" displays the exports.
[Regression Potential]
Regression potential is minimal. The dependency commit only moves code
around and the actual fix only introduces an external systemd-
generator without changing actual pre-existing code.
I tested and confirmed that the fix introduced [0] also covers the fix
removed [1], so there should not be any regression on this particular
code change as well.
[1] http://git.linux-nfs.org/?p=steved/nfs-
utils.git;a=commitdiff;h=1e41488f428cd36b200b48b84d31446e38dfdc50
[Other Info]
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nfs-utils/+bug/1871214/+subscriptions
More information about the foundations-bugs
mailing list