diff --git a/tests/ghost/recipe_meta.py b/tests/ghost/recipe_meta.py index 2052930..966ae89 100644 --- a/tests/ghost/recipe_meta.py +++ b/tests/ghost/recipe_meta.py @@ -8,7 +8,7 @@ # mysqldump pre-hook; P4 (ops.py + test_{backup,restore,upgrade}.py) seeds a `ci_marker` row there. HEALTH_PATH = "/" # Ghost serves a themed site HTML at root (200) HEALTH_OK = (200,) -DEPLOY_TIMEOUT = 1200 # subprocess timeout for `abra app deploy` +DEPLOY_TIMEOUT = 2400 # subprocess timeout for `abra app deploy` (cold-boot wall-time, see below) HTTP_TIMEOUT = 900 # Ghost's fresh-DB first boot runs a full schema migration (dozens of CREATE TABLEs, each a separate @@ -35,10 +35,13 @@ HTTP_TIMEOUT = 900 # clean-tree gate on that untracked overlay. It persists across the head checkout (idempotent — the PR # head already ships 15m). This is the policy-blessed "minimal overlay on the from-version so # upgrade-to-latest can run" — grace-only, masks no defect, weakens no test. -# TIMEOUT 1200s = migration (≤9min) + convergence, bounded so a genuine failure still fails (not a -# long blackout). See DECISIONS (ghost MySQL cold-boot / start_period recipe-PR + base-grace overlay). +# TIMEOUT/DEPLOY_TIMEOUT 2400s: the BASE cold boot's wall-time is mysql fresh-dir init (~6min, during +# which the app crash-loops harmlessly on `ECONNREFUSED 3306` until mysql accepts connections — no +# migration progress lost, it hasn't started) PLUS the ~9-15min schema migration (round-trip-bound, +# slower under host load). 1200s was too tight (full4 killed at the near-final `email_recipients` +# tables while still 0/1); 2400s gives headroom while still bounding a genuine hang (matches discourse). CHAOS_BASE_DEPLOY = True EXTRA_ENV = { - "TIMEOUT": "1200", + "TIMEOUT": "2400", "COMPOSE_FILE": "compose.yml:compose.ccci.yml", }