claim(2:Q4.6): discourse full lifecycle incl upgrade-to-latest GREEN (full8 deploy-count=1, all 5 tiers pass, P4 non-vacuous, clean teardown) — closes discourse portion of DONE VETO

This commit is contained in:
autonomic-bot
2026-05-31 04:58:12 +00:00
parent 190247f3a1
commit dabccebb02

View File

@ -66,7 +66,9 @@ tree must carry:
the running `drone_…` stack is the platform's OWN CI engine (infra), NOT the recipe-under-test (false
alarm cleared). Deferral SOUND; maximal subset (declarative fix + scoped gitea+drone suite) ready for
post-rebuild run.
- **discourse (Q4.6)** — IN PROGRESS @2026-05-30, **policy-compliant shape (plan §9 anti-overlay)**.
- **discourse (Q4.6)** — **CLAIMED @2026-05-31T05:0xZ (full8 ALL-GREEN, see ## Gate Q4.6).** Full
lifecycle incl **upgrade-to-latest** green, deploy-count=1, P4 data-integrity non-vacuous, clean
teardown. Closes the discourse portion of the standing DONE VETO. (Prior IN-PROGRESS detail below.)
recipe-PR `recipe-maintainers/discourse#1` (branch `ci/bitnamilegacy-repin`, head
`7a2e0e044cfd301aa7790e297adf0ac2aafb369b`): (1) re-pins app+sidekiq `bitnami/discourse:3.3.1`
`bitnamilegacy/discourse:3.3.1` (bitnami 404; legit upstream fix); (2) bumps the app healthcheck
@ -94,7 +96,12 @@ Standing VETO on DONE (REVIEW-2 @16:22:07Z) requires: ghost + discourse + mumble
**upgrade-to-latest** green with justified `compose.ccci.yml` overlays. Current cycle:
- **ghost F2-14b — ✅ Adversary PASS @2026-05-30T22:42Z (REVIEW-2, COLD, `/root/adv-ghost-f214b.log`).**
Closes the GHOST portion of the DONE VETO checklist. DONE.
- **discourse Q4.6 — VALIDATING (full5 @2026-05-31T01:2xZ, REF 3758522, builder-clone `8dfd8ed`).**
- **discourse Q4.6 — ✅ CLAIMED @2026-05-31T05:0xZ (full8 ALL-GREEN on the new Hetzner node; see
## Gate Q4.6).** full8 (`/root/ccci-discourse-full8.log`, builder-clone `588a087`, REF 3758522):
deploy-count=1; install/upgrade/backup/restore/custom ALL pass; create-topic round-trip green after
two test fixes (allow_uncategorized_topics + capitalised-title vs title_prettify); clean teardown.
(full5 was lost to the OLD-box OOM; full6/full7 were green except the create-topic test bugs.)
Prior full5 investigation (now historical):
full4 FAILED at BASE deploy: `abra app deploy` timed out at 2400s (install:fail, rest skip). NOT a
config break — full2 base-deploy SUCCEEDED with the identical overlay (swarm ignores the recipe's
dangling `sidekiq.depends_on:[discourse]`; it only breaks the `config --images` prepull lint → image
@ -125,6 +132,42 @@ Standing VETO on DONE (REVIEW-2 @16:22:07Z) requires: ghost + discourse + mumble
(full `install,upgrade,backup,restore,custom`, PR head `3758522`).
- mumble F2-14c + plausible Q4.7b still open.
## Gate Q4.6 — CLAIMED @2026-05-31T05:0xZ (discourse full lifecycle incl upgrade-to-latest, green)
**WHAT.** discourse full lifecycle GREEN — install + **upgrade-to-latest** + backup + restore + custom,
deploy-count=1, P4 backup data-integrity non-vacuous, clean teardown. Closes the discourse portion of
the standing DONE VETO (REVIEW-2 @16:22:07Z: ghost+discourse+mumble must run upgrade-to-latest green
with justified overlays). §9-compliant shape: the `start_period` bump is a LITERAL `20m` in the
recipe-PR (abra rejects env-interpolation of start_period), and `compose.ccci.yml` only re-pins
`bitnami/discourse:3.3.1``bitnamilegacy/discourse:3.3.1` (Docker Hub 404) + a grace-only start_period
on the 0.7.0 base — no assertion weakened.
**WHERE (inputs).**
- recipe-PR head: `3758522cf8702e97e88cd38d47165cf14defe74e` (recipe-maintainers/discourse#1, branch
`ci/bitnamilegacy-repin`; bitnamilegacy re-pin + literal 20m app start_period + `pg_backup.sh`
db backup/restore backupbot hooks + db config-mount).
- cc-ci commit: `588a087` (+ pushed HEAD) — discourse overlays/meta at `tests/discourse/` (recipe_meta:
UPGRADE_BASE_VERSION=`0.7.0+3.3.1`, COMPOSE_FILE=`compose.yml:compose.ccci.yml`, CHAOS_BASE_DEPLOY,
TIMEOUT/DEPLOY_TIMEOUT=3600, BACKUP_VERIFY probe); two create-topic test fixes in
`tests/discourse/functional/{_discourse.py,test_create_topic.py}` (enable allow_uncategorized_topics
in admin bootstrap; capitalised title vs title_prettify).
- Run log on cc-ci: `/root/ccci-discourse-full8.log`.
**HOW (cold re-run).** From a fresh clone at `588a087`, on cc-ci (node clean first):
`RECIPE=discourse PR=1 REF=3758522cf8702e97e88cd38d47165cf14defe74e SRC=recipe-maintainers/discourse cc-ci-run runner/run_recipe_ci.py`
**EXPECTED.** RUN SUMMARY: `deploy-count = 1`; install/upgrade/backup/restore/custom ALL `pass`.
- P3 (≥2 real functional): `test_create_topic.py::test_create_topic_roundtrip PASSED` (mint admin via
Rails → POST /posts.json create topic w/ unique marker → GET /t/<id>.json read-back, title+body
marker asserted), `test_site_basic.py::test_site_json_has_discourse_config PASSED`,
`test_health_check.py::test_discourse_srv_status_ok PASSED`.
- P4 NON-VACUOUS: `test_backup.py::test_backup_captures_state PASSED`,
`test_restore.py::test_restore_returns_state PASSED` (seeded `ci_marker` survives seed→backup→
mutate(DROP)→restore→assert; the postgres restore hook is what makes restore re-import — RED without it).
- Backup tier may log `backup-verify FAILED (attempt 1/3) — … re-running backup` then pass — this is
the chaos-upgrade db-cycle race + the BACKUP_VERIFY retry converging (non-vacuous discrimination;
read-only `gzip -t && wc -c>0` on backup.sql; weakens no assertion — restore stays the real P4 gate).
- Clean teardown: 0 discourse stacks / volumes / secrets after the run.
## Gate F2-14b — CLAIMED @2026-05-30T22:10Z (ghost upgrade-to-latest + reliable P4 backup-integrity)
**WHAT.** ghost full lifecycle GREEN incl upgrade-to-latest (base 1.1.1+6-alpine → PR-head `ae43ffe`),
with P4 backup data-integrity now RELIABLE via the new harness `BACKUP_VERIFY` hook + backup retry.