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
backup: correct the target_not_empty rule, the store root ancestor rule and a remove-target pointer #942
Some backup texts on main state rules that the code does not follow. #897 makes the same corrections in the upgrade manual.
When a restore fails as target_not_empty
The reconciler fails a store-backed restore with no recorded progress as target_not_empty only when the target holds more items than the backup's item_count (exceeds_backup_total in crates/engine/src/backup/reconciler.rs). At or below that count, the takeover arm resumes the restore and applies the first data file again. While a backup command holds the maintenance claim, the reconciler fails such a restore as OWNER_DEAD and removes its target.
These texts say otherwise:
crates/engine/src/backup/maintenance.rs, module doc, lines 39 to 43: on MongoDB and Cassandra, a crash before the first progress record ends in target_not_empty.
crates/app/src/cmd_backup.rs, module doc, lines 118 to 121: the same claim.
crates/app/src/cmd_backup.rs lines 76 to 78: a record with no recorded progress over a target that holds items fails as target_not_empty. The code requires more items than the backup holds.
crates/engine/src/backup/reconciler.rs lines 71 to 74 and 822 to 824: the same statement.
The directories above a filesystem root
crates/backup-store/src/fs.rs refuses an ancestor directory that group or others can write to, unless the directory carries the sticky bit. These texts name only others and leave out the sticky bit:
docs/manuals/05-admin-guide.md line 168: "sit under directories owned by root or that user which others cannot write to".
The default-root warning in crates/server/src/backup_store.rs (warn_default_root_unusable): "under directories owned by root or this user that others cannot write to".
docs/manuals/14-backup-and-restore.md states the rule as the code applies it.
The remove-target pointer
docs/manuals/14-backup-and-restore.md lines 479 and 480 send the reader to "the admin guide's backup section" for extenddb backup remove-target. The admin guide has no such section. It describes the command in its [backup.store] section.
Activity