diff --git a/config/copy/etc/systemd/user/xdg-document-portal.service.d/panama-stale-mount.conf b/config/copy/etc/systemd/user/xdg-document-portal.service.d/panama-stale-mount.conf index cbaef50..0a2a34e 100644 --- a/config/copy/etc/systemd/user/xdg-document-portal.service.d/panama-stale-mount.conf +++ b/config/copy/etc/systemd/user/xdg-document-portal.service.d/panama-stale-mount.conf @@ -18,5 +18,18 @@ # # `-` because a clean start has nothing to unmount and fusermount3 exits 1 # saying so, which is not a failure to start on. +# +# The unmount alone did not close the hole: the third recurrence (2026-08-26) +# started on ground the ExecStartPre had cleaned and still came up with no +# mount, sitting active-and-broken for fourteen hours until the next fresh +# flatpak launch found it. Hence ExecStartPost: the unit is not "started" +# until the mount it exists to provide actually exists. Type=dbus declares +# readiness at bus-name acquisition, which can land before the fuse thread +# has the mount up, so this polls rather than checks once. If five seconds +# pass without a mount, the start fails -- loudly, in the journal, as failed +# -- and the next bus activation retries from the ExecStartPre cleanup +# instead of every sandbox build failing against a unit that claims to be +# fine. [Service] ExecStartPre=-/usr/bin/fusermount3 -u /run/user/%U/doc +ExecStartPost=/usr/bin/timeout 5 /bin/sh -c 'until /usr/bin/mountpoint -q /run/user/%U/doc; do /usr/bin/sleep 0.2; done'