Build with clawstor cache / Cargo build (clawstor-cached) (pull_request) Failing after 3s
Live smoke on morpheus with the previous unit failed: Error: mounting FUSE at /home/osobh/clawstor-mount Caused by: Operation not permitted (os error 1) But 'systemd-run --user' with the exact same binary worked, and the manual invocation worked. The delta was our ExecStartPre chain (mkdir + fusermount3 -u -z) — on some Ubuntu 24.04 builds that combination poisons the subsequent mount syscall even with the -z lazy flag + ignored exit code. Fix: drop the pre-mkdir + pre-unmount. Operator creates the mount dir manually once (documented in README). Restart handling falls to systemd's Restart=on-failure + ExecStop unmount. Verified live on morpheus with the minimal unit — active + mount visible in <3s.
29 lines
1.2 KiB
Desktop File
29 lines
1.2 KiB
Desktop File
[Unit]
|
|
Description=Clawstor read-only FUSE mount (blobs / snapshots / tags / refs)
|
|
Documentation=https://git.redclaw.dev/clawverse/clawstor
|
|
After=network-online.target clawstor-cluster.service
|
|
Wants=clawstor-cluster.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
# systemd expands %h (home) at parse time; env-var expansion in
|
|
# the ExecStart binary position is NOT supported. Retarget via
|
|
# `systemctl --user edit clawstor-fuse.service` if the install
|
|
# path differs.
|
|
#
|
|
# Pre-6d we ran ExecStartPre=mkdir + ExecStartPre=fusermount3-u-z
|
|
# to guard against stale mounts. On some Ubuntu builds (observed
|
|
# on morpheus 2026-07-14) that combination made systemd refuse
|
|
# the subsequent FUSE mount with EPERM even though a manual
|
|
# invocation of the same binary succeeded. The minimal form here
|
|
# — plain ExecStart, ExecStop = unmount — is what actually works
|
|
# reliably across the fleet. Create the mount point manually
|
|
# (mkdir -p ~/clawstor-mount) once before enabling this unit.
|
|
ExecStart=%h/clawstor-deploy/claw-fuse --data-dir %h/clawstor-deploy/data --mount %h/clawstor-mount
|
|
ExecStop=/usr/bin/fusermount3 -u %h/clawstor-mount
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=default.target
|