diff --git a/tests/ghost/compose.ccci.yml b/tests/ghost/compose.ccci.yml index 2ca333b..9995168 100644 --- a/tests/ghost/compose.ccci.yml +++ b/tests/ghost/compose.ccci.yml @@ -19,7 +19,20 @@ # check still marks healthy immediately, so NO test/assertion is weakened and fast hosts are # unaffected. It is idempotent on the head (head already ships 15m). Merges deeply onto the base # healthcheck (test/interval/timeout/retries preserved; only start_period overridden). +# +# The `db` (mysql:8.0) healthcheck gets the same grace: on the loaded cc-ci host a FRESH mysql data +# dir init (InnoDB + system tables + root-password apply) takes ~6-10 min, far exceeding the recipe's +# 1m db start_period (+10×30s ≈ 6 min) — swarm kills mysql MID-INIT (exit 137 "unhealthy container"), +# leaving a half-written data dir whose InnoDB redo logs are corrupt ("Cannot create redo log files +# because data files are corrupt") → every restart fails → permanent deadlock. Widening the db +# start_period to 15m lets the slow first-boot init finish before the healthcheck can fail it. This +# bites BOTH base and head (the published recipe ships db start_period 1m everywhere), so the overlay +# applies on both (persists untracked across the head checkout) — a recipe-PR candidate too. +# Grace-only; masks no defect; weakens no test. services: app: healthcheck: start_period: 15m + db: + healthcheck: + start_period: 15m