Comment 25 for bug 1590799

Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

Spyderdyne,

Tks for letting me know about the container situation. I this it is easier to reproduce it there. With this tip I was able to reproduce here at will. I first started getting this in a Xenial machine:

$ systemctl status nfs-kernel-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

Feb 07 01:46:49 nfsstartxen systemd[1]: Dependency failed for NFS server and services.
Feb 07 01:46:49 nfsstartxen systemd[1]: nfs-server.service: Job nfs-server.service/start failed with result 'dependency'.

AND (after changing rpcbind.target to rpcbind.socket in the unit files):

$ systemctl status nfs-mountd.service
● nfs-mountd.service - NFS Mount Daemon
   Loaded: loaded (/etc/systemd/system/nfs-mountd.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2017-02-07 01:55:39 UTC; 39s ago
  Process: 244 ExecStart=/usr/sbin/rpc.mountd $RPCMOUNTDARGS (code=exited, status=1/FAILURE)

Feb 07 01:55:39 nfsstartxen systemd[1]: Starting NFS Mount Daemon...
Feb 07 01:55:39 nfsstartxen systemd[1]: nfs-mountd.service: Control process exited, code=exited status=1
Feb 07 01:55:39 nfsstartxen systemd[1]: Failed to start NFS Mount Daemon.
Feb 07 01:55:39 nfsstartxen systemd[1]: nfs-mountd.service: Unit entered failed state.
Feb 07 01:55:39 nfsstartxen systemd[1]: nfs-mountd.service: Failed with result 'exit-code'.

This is good because I expected the error to continue after my last comment - since enabling the socket is EXACTLY what I showed we had before.

Malcolm,

You were right, for the "nfs-mountd.service" I HAD TO have:

Wants=nfs-config.service rpcbind.service
After=nfs-config.service rpcbind.service

because:

BindsTo=nfs-server.service in "nfs-mountd.service"

Wasn't enough to guarantee the order if "nfs-server.service" contains:

Wants=rpcbind.service
After= rpc-statd.service

Looks like we have to force the order and I'll have to report this upstream pointing out this bug, together with this fix.

Will get back here tomorrow.