Comment 0 for bug 1871214

Revision history for this message
Rodrigo Barbieri (rodrigo-barbieri2010) wrote : nfsd doesn't start if exports depend on mount

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 /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