fix: recover durable route paths after restart
This commit is contained in:
@@ -89,6 +89,10 @@ python3 scripts/preflight-deployment.py ... \
|
||||
- A real `link(2)` operation between a unique zero-byte file in the qB root
|
||||
and one in the future automatic-route root. The probe verifies that both
|
||||
names refer to the same inode and removes them unconditionally.
|
||||
- Every existing `archive-control:*` Syncthing folder beneath `routes/` still
|
||||
has its local directory. This catches a route-root bind-mount migration that
|
||||
would otherwise hide an already configured folder and later fail a job with
|
||||
`No such file or directory`.
|
||||
- The token, qB password, and Syncthing API-key files are non-empty regular
|
||||
files with no group/world permissions.
|
||||
- The client image can read its configuration and reports usable permissions,
|
||||
@@ -102,6 +106,12 @@ root and add a `local_path_overrides` mapping for that exact API path. This
|
||||
prevents automatic route folders being created on a small configuration
|
||||
filesystem while the client expects to hardlink from the qB data mount.
|
||||
|
||||
When converting an existing node, stop its client and Syncthing containers,
|
||||
move each existing `routes/<route-id>` directory from the old Syncthing config
|
||||
tree into the new qB-backed route-root directory, then recreate Syncthing and
|
||||
run this preflight. Do not discard existing route directories: they can contain
|
||||
route handshake state or an in-progress transfer namespace.
|
||||
|
||||
## Failure handling
|
||||
|
||||
Treat a nonzero exit status as a deployment blocker. Correct the compose
|
||||
|
||||
Reference in New Issue
Block a user