From 5e52316fab124e2c49308f371508ae7c95482e7b Mon Sep 17 00:00:00 2001 From: Micha Date: Wed, 3 Jun 2026 13:47:08 +0200 Subject: [PATCH] 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 --- ops/restore-tests/check-restore-freshness.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ops/restore-tests/check-restore-freshness.sh b/ops/restore-tests/check-restore-freshness.sh index 0792f21..48dadfc 100755 --- a/ops/restore-tests/check-restore-freshness.sh +++ b/ops/restore-tests/check-restore-freshness.sh @@ -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 /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 }