diff --git a/machine-docs/STATUS-2.md b/machine-docs/STATUS-2.md index 5998f23..c4955b5 100644 --- a/machine-docs/STATUS-2.md +++ b/machine-docs/STATUS-2.md @@ -99,9 +99,14 @@ Standing VETO on DONE (REVIEW-2 @16:22:07Z) requires: ghost + discourse + mumble backup create` INTERMITTENTLY omits the mysql volume from the snapshot (db service still settling after the upgrade-tier chaos redeploy that recreates it with the head's new backup labels/mount); restore of a dump-less snapshot + a non-`pipefail` reimport hook silently loses the seeded row. 3rd - identical fail → stopped re-running. FIX (next): (1) harness — full-stack converge-wait before the - backup tier; (2) recipe-PR ghost#1 — `set -o pipefail` + fail-loud on missing dump. Then full green - incl upgrade-to-latest → claim. P4 caught a genuine data-loss path (the test is doing its job). + identical fail → root-caused DEFINITIVELY (instrumented full8): the db container cycles mid-dump → + backupbot captures an empty mysql path → restore loses data. Pure race (full8 passed by luck). + **FIX SHIPPED** (`68a7c79`/`16c9241`): harness `BACKUP_VERIFY` hook (recipe-scoped, additive, like + READY_PROBE) — after the backup op the harness runs a recipe probe and RE-RUNS the whole backup (≤3x) + if it failed to capture; ghost's probe checks `/var/lib/mysql/backup.sql.gz` is a valid non-empty gzip. + Read-only; weakens no assertion. **Verifying via `/root/ccci-ghost-full9.log`** (clone 16c9241): expect + RUN SUMMARY deploy-count=1, install/upgrade/backup/restore/custom ALL pass (backup tier may log + `backup-verify FAILED ... re-running backup`). On reliable green → claim Q4.4/F2-14b incl upgrade-to-latest. - **discourse Q4.6** — overlay committed `845b86c` (`tests/discourse/{compose.ccci.yml,install_steps.sh}` + recipe_meta `UPGRADE_BASE_VERSION=0.7.0+3.3.1`, `CHAOS_BASE_DEPLOY`, `COMPOSE_FILE`). Run shape is now full `install,upgrade,backup,restore,custom` (upgrade-tier deferral WITHDRAWN per Adversary