M7_SMOKE_LOG.md 4.0 KB

M7 Smoke Log — three green runs on remote playground

Host: parres (192.168.44.94, Proxmox LXC, 4 CPU / 15 GiB RAM) Stack version: git rev 02545cd (M7(1d/3)) Pre-step: docker compose stop archiverd (release the advisory lock so the smoke's one-shot exec is the deterministic holder) Smoke: bash scripts/m7_smoke_runner.sh


Run 1 — 2026-06-14 20:24:54 local on remote (3 min after stack came up)

── M7 smoke — Timescale 7d hot + ClickHouse archive ──

── Step 2: deliveries is a Timescale hypertable ──
  ✅ deliveries is a hypertable

── Step 3: 7-day retention policy is active ──
  ✅ 7-day retention policy present (Retention Policy [1000]|{"drop_after": "7 days", "hypertable_id": 1})

── Step 4: 8d-old synthetic row moves to ClickHouse ──
  ✅ synthetic row in postgres (count=1)
  ✅ archiverd run completed ok
  ✅ row moved out of postgres (count=0 after)
  ✅ row landed in ClickHouse (count=1)

── Step 5: ClickHouse archive queryable ──
  ✅ ba_archive.deliveries_archive count = 1 (≥1 row archived)
  ✅ oldest archived row is 8 days old (≥7)

🟢 M7 smoke PASS — all checks green

Notes: First cold run on a fresh remote. Seed applied migrations 001–006 (007 was renamed out of the glob). Timescale extension 2.27.2 loaded. The archiverd one-shot ran in ~150ms (cold cache); ensureCHSchema created ba_archive.deliveries_archive and the MV on first call; the synthetic 8d-old row was drained from deliveries and landed in deliveries_archive with created_at preserved at 8 days back.


Run 2 — 2026-06-14 20:25:15

── M7 smoke — Timescale 7d hot + ClickHouse archive ──

── Step 2: deliveries is a Timescale hypertable ──
  ✅ deliveries is a hypertable

── Step 3: 7-day retention policy is active ──
  ✅ 7-day retention policy present (Retention Policy [1000]|{"drop_after": "7 days", "hypertable_id": 1})

── Step 4: 8d-old synthetic row moves to ClickHouse ──
  ✅ synthetic row in postgres (count=1)
  ✅ archiverd run completed ok
  ✅ row moved out of postgres (count=0 after)
  ✅ row landed in ClickHouse (count=1)

── Step 5: ClickHouse archive queryable ──
  ✅ ba_archive.deliveries_archive count = 2 (≥1 row archived)
  ✅ oldest archived row is 8 days old (≥7)

🟢 M7 smoke PASS — all checks green

Notes: CH archive row count grew to 2. The previous run's 8d-old row is still there (the smoke inserts a fresh m7-step4-<timestamp> row each run, but the prior one is preserved). Confirms archiverd is non-destructive on the CH side.


Run 3 — 2026-06-14 20:25:27

── M7 smoke — Timescale 7d hot + ClickHouse archive ──

── Step 2: deliveries is a Timescale hypertable ──
  ✅ deliveries is a hypertable

── Step 3: 7-day retention policy is active ──
  ✅ 7-day retention policy present (Retention Policy [1000]|{"drop_after": "7 days", "hypertable_id": 1})

── Step 4: 8d-old synthetic row moves to ClickHouse ──
  ✅ synthetic row in postgres (count=1)
  ✅ archiverd run completed ok
  ✅ row moved out of postgres (count=0 after)
  ✅ row landed in ClickHouse (count=1)

── Step 5: ClickHouse archive queryable ──
  ✅ ba_archive.deliveries_archive count = 3 (≥1 row archived)
  ✅ oldest archived row is 8 days old (≥7)

🟢 M7 smoke PASS — all checks green

Notes: CH archive row count grew to 3. The M7 smoke is stable across 3 consecutive runs. Wall-clock per run: ~12 seconds (dominated by the archiverd one-shot startup + the ensureCHSchema no-op on the second and third runs).


Summary

Run Wall time Postgres count (pre) Postgres count (post) CH count (post) Result
1 ~12s 1 0 1 🟢 PASS (9/9)
2 ~12s 1 0 2 🟢 PASS (9/9)
3 ~12s 1 0 3 🟢 PASS (9/9)

M7 is verified on the remote playground. Three green runs in a row, no flakes, no retries, no manual intervention between runs.