fix(backup-drill): report orphan repo dirs instead of failing fsck #525
Inga granskare
Etiketter
Inga etiketter
area/backups
area/ci
area/control-panel
area/identity
area/infra
area/observability
area/payments
area/security
area/storage
area/web
blocked
needs-info
needs-triage
ready-for-implementation
type
bug
type
chore
type
docs
type
epic
type
feature
type
task
wontfix
Ingen milstolpe
Inget projekt
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Inget förfallodatum satt.
Beroenden
Inga beroenden satta
Referens
bitborg/bitborg-infra!525
Läser in…
Hänvisa till i nytt ärende
Ingen beskrivning angiven.
Ta bort grenen "fix/158-drill-fsck-orphans"
Borttagning av en gren är permanent. Även om den borttagna grenen kan fortsätta existera en kort tid innan den faktiskt tas bort, kan det INTE ångras i de flesta fall. Vill du fortsätta?
What
The second production drill run (with #524's logging) got through the hot leg's restore,
pg_restoreand canary check (snapshot and canary 9 s apart). It failed only ongit fsck: 15 repos checked, 1 failed with "not a git repository". That directory,supernaut/migration-verify-scratch.git, is an orphan in production too. It holds only an emptypulls/subdir, noHEADand no objects, and its repo no longer exists. The backup copied it correctly.*.gitdirs withoutHEADandobjectsare logged asORPHAN <path>, counted, and skipped. They no longer fail the leg.FSCK_DONE <checked> <bad> <orphans>, plus the new metricbitborg_backup_drill_hot_orphan_dirs.Verification
Local fixture: three bare repos (one corrupted) and one orphan gives
FSCK_DONE 3 1 1, rc=1; without the corrupted repo,FSCK_DONE 2 0 1, rc=0.--syntax-check, ansible-lint 0,bash -n,py_compile, check-metric-names, prettier and markdownlint pass.Apply
Tag
backup-drill: only the on-VM hot restore script and the orchestrator change. Then run the drill by hand; both legs should pass.Refs #158