Comment 5 for bug 1934775

Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

Some more observations. The fs-fuse mount unit fails:

root@ubuntu-server:/# systemctl status sys-fs-fuse-connections.mount
* sys-fs-fuse-connections.mount - FUSE Control File System
     Loaded: loaded (/lib/systemd/system/sys-fs-fuse-connections.mount; static; vendor preset: enabled)
     Active: inactive (dead)
  Condition: start condition failed at Thu 2021-05-27 15:16:21 UTC; 1 months 16 days ago
      Where: /sys/fs/fuse/connections
       What: fusectl
       Docs: https://www.kernel.org/doc/Documentation/filesystems/fuse.txt
             https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems

May 27 15:16:19 ubuntu-server systemd[1]: Condition check resulted in FUSE Control File System being skipped.
May 27 15:16:21 ubuntu-server systemd[1]: Condition check resulted in FUSE Control File System being skipped.
May 27 15:16:21 ubuntu-server systemd[1]: Condition check resulted in FUSE Control File System being skipped.
May 27 15:16:21 ubuntu-server systemd[1]: Condition check resulted in FUSE Control File System being skipped.

The condition that fails is apparently

ConditionPathExists=/sys/fs/fuse/connections

Which indeed does not exist. It seems to be created when a FUSE mount happens:

root@ubuntu-server:/# ls /sys/fs/fuse
ls: cannot access '/sys/fs/fuse': No such file or directory
root@ubuntu-server:/# mkdir xx
root@ubuntu-server:/# mount -t fusectl fusectl xx
root@ubuntu-server:/# ls xx
root@ubuntu-server:/# mount | grep fuse
fusectl on /xx type fusectl (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
root@ubuntu-server:/# umount xx
root@ubuntu-server:/# ls -d /sys/fs/fuse/connections
/sys/fs/fuse/connections

At that point I can restart successfully the mount unit with "systemctl restart sys-fs-fuse-connections.mount". And with that I am also able to finish successfully the installation.

To me, the ConditionPathExists=/sys/fs/fuse/connections is quite strange, and it seems like it is a dependency that is fulfilled when the mount unit is run. So the mount unit expects something has already mounted fusectl but its mission is to mount it too??