fix(restore): freshness check pg_header_ok returns 1 on corrupt dump
Negativ-Test 2026-06-03: korrupter mealie.dump wurde nicht erkannt, weil der Docker-Fallback-Pfad nach gescheitertem pg_restore --list zu return 2 (unchecked) durchfiel statt return 1 (invalid). Fix: explizites if/else statt &&-Kette, damit fehlgeschlagene Header-Validierung return 1 liefert und als DUMP_HEADER_INVALID in den Critical-Zaehler geht. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -38,9 +38,13 @@ pg_header_ok() {
|
||||
if ! command -v pg_restore >/dev/null 2>&1; then
|
||||
# ohne Host-pg_restore: in laufendem Postgres-Container probieren
|
||||
if command -v docker >/dev/null 2>&1 && docker inspect postgresql17 >/dev/null 2>&1; then
|
||||
docker exec -i postgresql17 pg_restore --list </"$path" >/dev/null 2>&1 && return 0
|
||||
if docker exec -i postgresql17 pg_restore --list < "$path" >/dev/null 2>&1; then
|
||||
return 0 # Header valide
|
||||
else
|
||||
return 1 # Header korrupt
|
||||
fi
|
||||
fi
|
||||
return 2 # nicht pruefbar
|
||||
return 2 # nicht pruefbar (kein pg_restore, kein Container)
|
||||
fi
|
||||
pg_restore --list "$path" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user