[systemd-devel] Native systemd FUSE mounts don't umount on exit

David Strauss david at davidstrauss.net
Fri Jan 4 19:11:36 PST 2013


At Pantheon, we've noticed that systemd uses OS data on whether
something is mounted even if it's a native .mount unit.

We'd like to see better mount supervision by systemd and automatic
umount-ing on failure. For FUSE mounts, if the supervised process
fails, the mount is dead, even if the FUSE process didn't cleanly
umount it on exit. systemd ought to know that a mount is a oneshot vs.
a forking type and mark the mount "failed" if it is forking.
Obviously, this is a divergence from what's supported in fstab, but
there's no other way for systemd to know whether a mount is behaving
properly.

systemd also doesn't cleanly kill everything in the cgroup on
stop/restart of the mount. We occasionally end up with multiple
processes in the cgroup from various mount attempts, even attempts
from different versions of the .mount unit. This creates many problems
for FUSE-based file systems expecting to manage PID files or needing
exclusive access to cache directories.

It'd be great to even add "notify" support to mounts so they can
report back health, as a service does.

Should we just be using services instead? It seems like all of these
things would be useful for FUSE-based file systems that keep (and
require) a process to persist.

--
David Strauss
   | david at davidstrauss.net
   | +1 512 577 5827 [mobile]


More information about the systemd-devel mailing list