You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
opendal backend: a retried listing can silently skip a directory, so check reports present packs as missing #612
rustic 0.11.4 (rustic_core 0.13.0, opendal 0.58.1), repository on a Hetzner Storage Box via opendal:webdav. A routine rustic check failed:
[WARN] will retry List (attempt 1) after 1.69s because: Unexpected (temporary) at list => send http request
error sending request for url (https://<storage-box>/rustic/data/e0/): client error (SendRequest): connection closed before message completed
[ERROR] pack e01b9371 marked to-delete: false is referenced by the index with size 149234627 but not present! To repair: 'rustic repair index'.
... (10 such errors, every pack under data/e0/)
error: `rustic_core` experienced an error related to `the repository`.
check found errors!
A later rustic list packs returned all 2503 packs, including those 10.
Cause
apache/opendal#8376: with RetryLayer, a recursive listing that hits a temporary error on a child directory returns Ok without that directory's entries. The backend in crates/backend/src/opendal.rs lists with recursive: true under RetryLayer, on opendal 0.58.2 on main.
Why it matters
The error message recommends rustic repair index. After a listing that silently skipped a directory, following that advice would remove live packs from the index. prune lists packs the same way; I haven't checked how it reacts to a skipped directory.
Until then, list data/ one subdirectory at a time, so a failed directory surfaces as an error instead of an empty result; or have check stat the packs it believes are missing before reporting them and recommending repair index.
Activity