Restore drill forgejo doctor fails post-ADR-0031: [storage] app.ini written to hardcoded rootful path #222
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#222
Läser in…
Hänvisa till i nytt ärende
Ingen beskrivning angiven.
Ta bort grenen "%!s()"
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?
Symptom
BackupDrillFailedstill firing after #220. The restore drill now clears the restic restore (the #219/#220 lock fix works —restic check+ restore both succeed), but fails atforgejo doctorwith exit 1:Root cause
restore-on-scratch.shwrites the drill's minimal app.ini to${WORK_MP}/conf/app.ini(layout-aware:WORK_MP=${VOL_MP}rootless,${VOL_MP}/gitearootful — line 206-207). But the[storage]section (added for #188) is appended to a hardcoded rootful path${VOL_MP}/gitea/conf/app.ini(line 239).Since the ADR 0031 rootless cutover (#91), prod backups are the rootless layout (no
gitea/subdir — the volume root is the work dir) and[storage]is present (#188). Both conditions now hold, so the append targets a nonexistent file → the write fails → the doctor container can't start → exit 1.A gap left by the ADR 0031 cutover: the drill's layout detection was added, but this one write path wasn't converted from the rootful
${VOL_MP}/gitea/confto the layout-aware${WORK_MP}/conf.Fix
Line 239: append
[storage]to${WORK_MP}/conf/app.ini(the same file the main app.ini is written to on line 207), not the hardcoded${VOL_MP}/gitea/conf/app.ini. One-liner.Verified: the restic restore +
restic checksucceed (10.341 GiB restored in 8:29), DB restore is fine — the drill is otherwise healthy; this is purely the doctor's app.ini path.Refs #91 (ADR 0031), #188.