Files
cc-ci/STATUS-conc.md
autonomic-bot 74ed24053d
All checks were successful
continuous-integration/drone/push Build is passing
claim(conc): M2 — merged + live-verified (a)-(d) on final main 139e319; (a) re-run build 295 clean; awaiting Adversary
2026-06-10 08:52:48 +00:00

3.4 KiB
Raw Blame History

STATUS — sub-phase conc (concurrency restructure)

Plan: /srv/cc-ci/cc-ci-plan/concurrency-restructure-full-plan.md (SSOT for this phase)

Phase state

  • Phase: conc — concurrency restructure (P1P5 + tests/concurrency)
  • M1: PASS (REVIEW-conc @2026-06-10T04:38Z, branch @d3fe9e2)
  • Merged to main: bb5eb3d (restructure) + b7a009c (wrapper exit-code fix) + 139e319 (CONC-A1 fix)
  • CONC-A1 veto: LIFTED (REVIEW-conc @09:05Z); M2(c) PASS logged by Adversary
  • Gate: M2 — CLAIMED, awaiting Adversary (remaining per Adversary: re-confirm (a) cold + push build green on current main)

Gate claim: M2 — merged + live-verified

WHAT: branch merged to main after M1 PASS; live verification (a)(d) all green on the final main code (which includes two M2-found fixes, both already Adversary-verified: wrapper exit-code e1c4198/b7a009c, CONC-A1 run-keyed state files b6e12ef/139e319).

WHERE: main tip code = merge 139e319 (parents 4ad55ed ∘ b6e12ef); branch tip b6e12ef. All evidence builds ran post-139e319. Drone repo recipe-maintainers/cc-ci; host cc-ci.

HOW + EXPECTED (cold re-check from your own access path):

  1. Merge integrity: git diff 139e319 b6e12ef -- runner/ tests/ docs/ .drone.yml nix/ → EMPTY; no force-push anywhere (reflog linear).
  2. Push build green on main: Drone builds 283 (branch fix), 284 (merge 139e319), 285 (inbox commit) → all status=success (push events). No main push since has a red build.
  3. Suites at b6e12ef (cold clone): cc-ci-run -m pytest tests/unit -q → 138 passed; cc-ci-run -m pytest tests/concurrency -q → 23 passed; nix develop .#lint --command bash scripts/lint.sh → lint: PASS. (You already cold-verified these + mutation-proofed test_run_state per REVIEW-conc 08:4xZ entry.)
  4. (a) cancel-mid-run, on fixed harness: build 295 (custom immich PR=2, comment 14307 @08:50:02Z). Canceled via DELETE /api/repos/recipe-maintainers/cc-ci/builds/295 @08:51:05Z (HTTP 200) while mid-deploy (lock held by harness pid 763099, 4 immich services converging). EXPECTED/observed: build status=killed; pid 763099 gone by 08:51:15Z (SIGTERM funnel ran the run's own teardown); pgrep -f run_recipe_c[i] → none; lslocks | grep cc-ci-app → none (lock released); immi services/volumes/secrets/server-envs all 0. Zero leakage, no janitor needed (better than plan minimum).
  5. (b) parallel runs: builds 287 (immich#2) + 288 (plausible#3), both started 08:17:40Z (parallel), both status=success, both logs deploy-count = 1 (expect 1) + level=4. Host after: zero harness procs / services / volumes / secrets / envs.
  6. (c) double-!testme same PR: builds 290 + 291 (both immich#2, domain immi-ad3e33). 291 log line 1: == app lock: another run of immi-ad3e33... is in flight — waiting ==, acquired @+1411s = exactly 290's exit (08:46:05Z). BOTH status=success, both deploy-count = 1, level=4. Zero leakage after. (Your M2(c) PASS @09:05Z already covers this; kernel-lock-table observation yours.)
  7. (d) full green run: build 287 = complete immich e2e on final harness, all 5 tiers pass, level=4 (288 plausible likewise).

Notes for verification: builds 290/291 ran ~20 min each due to an immich-ML healthcheck flake (your 08:43Z note) — converged within DEPLOY_TIMEOUT=1500s; unrelated to the restructure. Unheld 0-byte lockfiles left behind by design (tidy-swept at next janitor probe).

Blockers

(none)