Package: systemd
Version: 215-17+deb8u4

In a scenario where the NFS server is not yet up when mounting an NFS share at boot, the systemd *.mount unit times out and gets stuck in a somewhat odd "active (mounted)" state, even though it is not actually mounted. This appears to prevent any systemd *.automount unit from being able to later mount it when the NFS server does come back online.

This means that in our scenario where the NFS server machine is slower to boot up than the NFS client machines, we must perform manual intervention on each of the client machines to mount the missing NFS shares after e.g. a site-wide power failure. I had hoped that using systemd.automount would handle this scenario better, having processes attempting to use the NFS mount wait or return IO errors until the NFS server eventually comes online and gets mounted.

● srv-mail.mount - /srv/mail
   Loaded: loaded (/etc/fstab)
   Active: active (mounted) (Result: timeout) since Sun 2016-08-28 15:03:44 
EEST; 1min 40s ago
    Where: /srv/mail
     What: nfs.test.pvl:mail
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 426 ExecMount=/bin/mount -n nfs.test.pvl:mail /srv/mail -t nfs4 -o 
defaults,auto,nodev,nosuid,noatime,x-systemd.automount (code=killed, 
signal=TERM)

Aug 28 15:02:14 mail-mta-test systemd[426]: Executing: /bin/mount -n 
nfs.test.pvl:mail /srv/mail -t nfs4 -o 
defaults,auto,nodev,nosuid,noatime,x-systemd.automount
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount mounting timed out. 
Stopping.
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount changed mounting -> 
mounting-sigterm
Aug 28 15:03:44 mail-mta-test systemd[1]: Child 426 belongs to srv-mail.mount
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount mount process exited, 
code=killed status=15
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount changed mounting-sigterm 
-> mounted
Aug 28 15:03:44 mail-mta-test systemd[1]: Job srv-mail.mount/start finished, 
result=done
Aug 28 15:03:44 mail-mta-test systemd[1]: Mounted /srv/mail.

I am reporting this as a bug since it appears that manually *stopping* the *.mount unit to place it into an inactive state is enough to allow the automounter to successfully mount it.

Annotated events below, full journalctl output at:

https://gist.github.com/SpComb/560ce0c4e7d625dfea354769f48af758#file-journalctl-systemd-mount

 -- Tero Marttila

Initial mount during bootup:

Aug 28 15:02:14 mail-mta-test systemd[1]: Mounting /srv/mail...
Aug 28 15:02:14 mail-mta-test systemd[1]: About to execute: /bin/mount -n 
nfs.test.pvl:mail /srv/mail -t nfs4 -o 
defaults,auto,nodev,nosuid,noatime,x-systemd.automount
Aug 28 15:02:14 mail-mta-test systemd[1]: Forked /bin/mount as 426
Aug 28 15:02:14 mail-mta-test systemd[1]: srv-mail.mount changed dead -> 
mounting

NFS server is down, initial mount times out:

Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount mounting timed out. 
Stopping.
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount changed mounting -> 
mounting-sigterm
Aug 28 15:03:44 mail-mta-test systemd[1]: Received SIGCHLD from PID 426 (mount).
Aug 28 15:03:44 mail-mta-test systemd[1]: Child 426 (mount) died (code=killed, 
status=15/TERM)
Aug 28 15:03:44 mail-mta-test systemd[1]: Child 426 belongs to srv-mail.mount
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount mount process exited, 
code=killed status=15
Aug 28 15:03:44 mail-mta-test systemd[1]: srv-mail.mount changed mounting-sigterm 
-> mounted
Aug 28 15:03:44 mail-mta-test systemd[1]: Job srv-mail.mount/start finished, 
result=done
Aug 28 15:03:44 mail-mta-test systemd[1]: Mounted /srv/mail.
Aug 28 15:03:44 mail-mta-test systemd[1]: Child 428 (mount.nfs4) died 
(code=killed, status=15/TERM)

Attempt to SSH in while NFS server is still down. Triggers first automount attempt, but does not actually attempt to mount anything:

Aug 28 15:06:23 mail-mta-test systemd[1]: Got automount request for /srv/mail, 
triggered by 753 (sshd)
Aug 28 15:06:23 mail-mta-test systemd[1]: Trying to enqueue job 
srv-mail.mount/start/replace
Aug 28 15:06:23 mail-mta-test systemd[1]: Installed new job 
srv-mail.mount/start as 671
Aug 28 15:06:23 mail-mta-test systemd[1]: Enqueued job srv-mail.mount/start as 
671
Aug 28 15:06:23 mail-mta-test systemd[1]: srv-mail.automount changed waiting -> 
running
Aug 28 15:06:23 mail-mta-test systemd[1]: Job srv-mail.mount/start finished, 
result=done
Aug 28 15:06:23 mail-mta-test systemd[1]: Mounted /srv/mail.

Restore the NFS server.

Attempt to SSH in again with sshd pid=801, no automount triggered yet?

Manually stop the .mount unit, which immediately triggers a successful automount from the previous sshd pid=801 login attempt:

Aug 28 15:07:27 mail-mta-test systemd[1]: Got message type=method_call 
sender=n/a destination=org.freedesktop.systemd1 
object=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager 
member=StopUnit cookie=1 reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Trying to enqueue job 
srv-mail.mount/stop/replace
Aug 28 15:07:27 mail-mta-test systemd[1]: Installed new job srv-mail.mount/stop 
as 684
Aug 28 15:07:27 mail-mta-test systemd[1]: Enqueued job srv-mail.mount/stop as 
684
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=method_return 
sender=n/a destination=n/a object=n/a interface=n/a member=n/a cookie=1 
reply_cookie=1 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1 
interface=org.freedesktop.systemd1.Manager member=JobNew cookie=2 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Unmounting /srv/mail...
Aug 28 15:07:27 mail-mta-test systemd[1]: About to execute: /bin/umount -n 
/srv/mail
Aug 28 15:07:27 mail-mta-test systemd[1]: Forked /bin/umount as 818
Aug 28 15:07:27 mail-mta-test systemd[1]: Sending failure: No such device
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount changed mounted -> 
unmounting
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2emount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=3 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2emount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=4 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/job/684 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=5 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Got automount request for /srv/mail, 
triggered by 801 (sshd)
Aug 28 15:07:27 mail-mta-test systemd[1]: Trying to enqueue job 
srv-mail.mount/start/replace
Aug 28 15:07:27 mail-mta-test systemd[1]: Job srv-mail.mount/stop finished, 
result=canceled
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1 
interface=org.freedesktop.systemd1.Manager member=JobRemoved cookie=6 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Installed new job 
srv-mail.mount/start as 685
Aug 28 15:07:27 mail-mta-test systemd[1]: Enqueued job srv-mail.mount/start as 
685
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2eautomount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=7 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2eautomount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=8 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1 
interface=org.freedesktop.systemd1.Manager member=JobNew cookie=9 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Mounting /srv/mail...
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2emount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=10 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/unit/srv_2dmail_2emount 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=11 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/job/685 
interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=12 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Got message type=method_call 
sender=n/a destination=org.freedesktop.systemd1 
object=/org/freedesktop/systemd1 interface=org.freedesktop.systemd1.Manager 
member=GetUnit cookie=2 reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=method_return 
sender=n/a destination=n/a object=n/a interface=n/a member=n/a cookie=13 
reply_cookie=2 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Got message type=method_call 
sender=n/a destination=org.freedesktop.systemd1 
object=/org/freedesktop/systemd1/unit/srv_2dmail_2emount 
interface=org.freedesktop.DBus.Properties member=Get cookie=3 reply_cookie=0 
error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Sent message type=method_return 
sender=n/a destination=n/a object=n/a interface=n/a member=n/a cookie=14 
reply_cookie=3 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[818]: Executing: /bin/umount -n /srv/mail
Aug 28 15:07:27 mail-mta-test systemd[1]: Got disconnect on private connection.
Aug 28 15:07:27 mail-mta-test systemd[1]: Received SIGCHLD from PID 818 
(umount).
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 818 (umount) died (code=exited, 
status=32/n/a)
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 818 belongs to srv-mail.mount
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount mount process exited, 
code=exited status=32
Aug 28 15:07:27 mail-mta-test systemd[1]: Sending failure: No such device
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount changed unmounting -> 
failed
Aug 28 15:07:27 mail-mta-test systemd[1]: Unit srv-mail.mount entered failed 
state.
Aug 28 15:07:27 mail-mta-test systemd[1]: Mounting /srv/mail...
Aug 28 15:07:27 mail-mta-test systemd[1]: About to execute: /bin/mount -n 
nfs.test.pvl:mail /srv/mail -t nfs4 -o 
defaults,auto,nodev,nosuid,noatime,x-systemd.automount
Aug 28 15:07:27 mail-mta-test systemd[1]: Forked /bin/mount as 821
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount changed failed -> 
mounting
Aug 28 15:07:27 mail-mta-test systemd[1]: Received SIGCHLD from PID 802 (sshd).
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 802 (sshd) died (code=exited, 
status=255/n/a)
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 754 (sshd) died (code=exited, 
status=255/n/a)
Aug 28 15:07:27 mail-mta-test systemd[1]: Accepted new private connection.
Aug 28 15:07:27 mail-mta-test systemd[1]: Got message type=signal sender=n/a 
destination=n/a object=/org/freedesktop/systemd1/agent 
interface=org.freedesktop.systemd1.Agent member=Released cookie=1 
reply_cookie=0 error=n/a
Aug 28 15:07:27 mail-mta-test systemd[1]: Got disconnect on private connection.
Aug 28 15:07:27 mail-mta-test systemd[821]: Executing: /bin/mount -n 
nfs.test.pvl:mail /srv/mail -t nfs4 -o 
defaults,auto,nodev,nosuid,noatime,x-systemd.autom
Aug 28 15:07:27 mail-mta-test sshd[801]: Connection closed by 
2001:2060:41:a64::1d9 [preauth]
Aug 28 15:07:27 mail-mta-test sshd[753]: Connection closed by 
2001:2060:41:a64::1d9 [preauth]
Aug 28 15:07:27 mail-mta-test umount[818]: umount: /srv/mail: target is busy
Aug 28 15:07:27 mail-mta-test umount[818]: (In some cases useful info about 
processes that
Aug 28 15:07:27 mail-mta-test umount[818]: use the device is found by lsof(8) 
or fuser(1).)
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount changed mounting -> 
mounting-done
Aug 28 15:07:27 mail-mta-test systemd[1]: Job srv-mail.mount/start finished, 
result=done
Aug 28 15:07:27 mail-mta-test systemd[1]: Mounted /srv/mail.
Aug 28 15:07:27 mail-mta-test systemd[1]: Received SIGCHLD from PID 821 (mount).
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 821 (mount) died (code=exited, 
status=0/SUCCESS)
Aug 28 15:07:27 mail-mta-test systemd[1]: Child 821 belongs to srv-mail.mount
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount mount process exited, 
code=exited status=0
Aug 28 15:07:27 mail-mta-test systemd[1]: srv-mail.mount changed mounting-done 
-> mounted

The NFS mount is now actually automounted.

_______________________________________________
Pkg-systemd-maintainers mailing list
Pkg-systemd-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-systemd-maintainers

Reply via email to