25cb3eb9c1
gates / gates (push) Successful in 29s
- R-463 CLOSED: rallly, outline, sparkyfitness -> PostgreSQL 18 (catalog 25ffd89 / aeb0cd6 / 1666572), each proven on the bench and on 9202 through the guarded Update with one undo case; zipline, adventurelog, immich stay on 16 by 09 decision 42's rule (upstream runs 16 / 16 / 14). - Part F: bookstack, kimai, audiobookshelf, n8n, navidrome, grafana, komga moved on both venues; immich not (R-732: its first start OOM-killed its database on the bench). - R-687 item 4 PROVEN LIVE on demo-hp: two deferrals while the leg stepped two apps, the whole-guest backup on the first poll after, success; config + window put back and read back. - Catalog currency audit (Part D): 25/53 behind inside a major, 19 across; night-updatable 28 -> 31 (+1). - R-446 and R-440 narrowed (measured on demo-hp); R-624 corrected (outline, rallly, zipline have routes); R-548 note (demo-hp's local tier refused for space since 09-27). - New rows: R-730 (the ISO 1.29.0 build commit cannot be proven -> no tag; installer-v* is the script's line), R-731 (tag-shape switches), R-732. Register 361 -> 364. - 09 §3: the 2026-09-30 operator notes (by day; Tester-2 pre-checks done; decision 52 not needed, not recorded); §6.4 dated currency note. STATUS, CONTEXT, REPORT-pg-last-six-2026-09-30.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
64 lines
5.1 KiB
Markdown
64 lines
5.1 KiB
Markdown
# Part C — the full-system backup waits for the update leg, seen live by day (R-687 item 4)
|
||
|
||
demo-hp guest 9201, controller 0.283.1, agent 0.138.0. 2026-09-30. Tool: `tools/partC.py` (setup / run / restore).
|
||
|
||
## Feasibility, measured first (read only)
|
||
|
||
| condition | measured | source |
|
||
|---|---|---|
|
||
| whole-guest tier DUE | local tier: newest archive `vzdump-lxc-9201-2026_09_29-04_42_11` (≈ 31 h), cadence 24 h → **due**. PBS tier: last 2026-09-24T20:06Z, weekly → **not due** (so ep0 is not written) | `pvesm list local/felhom-pbs`, agent journal `backup tier armed … cadence=24h0m0s` |
|
||
| why it had not run | the space preflight (R-685) refused it **10 times since 2026-09-27**: „local has 12.1 GiB free; … a new one needs about 12.1 GiB" | agent journal 04:44–06:44 CEST; → R-548 note |
|
||
| room now | local 14.2 GiB free ≥ the 12.1 GiB it needs | `pvesm status` |
|
||
| the window | no `backup_window_start` in settings.json → controller.yaml `db_dump_schedule: "02:30"`; gate [04:30, 08:30) | settings.json, controller.yaml |
|
||
| a leg step pending | none at first (every app at the catalog head); **Part F's bookstack and kimai moves gave two** — the page read „Frissítés elérhető — ma · Hátralévő frissítési lépések: 1" for both | `C1-sync-and-offer.txt` |
|
||
| the leg's retry wait | `RetryWait` default 2 min (`unattended.go` SetUpdateLeg) — not needed | source |
|
||
|
||
**The order is the whole trick.** The tier was already due, so moving the window before the leg ran would have let the
|
||
next 1-minute poll start the backup during the chain's own dump and off-site legs. The window moved only once
|
||
`[update-leg] started (manual-chain)` was in the log (2 s later, by the product's own form).
|
||
|
||
## What happened (controller log, `C-run-log.txt`; times UTC)
|
||
|
||
```
|
||
11:18:08 [quiesce] loop started (poll 1m0s, max-quiesce 30m0s) ← setup: quiesce.poll_interval 1m
|
||
11:28:26 [night-chain] manual run of tonight's chain: dump → second drive → off-site → update leg
|
||
11:30:26 [night-chain] db-dump: done in 2m0s
|
||
11:34:19 [update-leg] started (manual-chain): window 02:30, no step starts at or after 16:49
|
||
11:34:19 [update-leg] bookstack: step pressed … 26.05.5 → 26.09.1
|
||
(11:34:21 POST /backups/window window_start=11:29 → 303 flash.backup.window_updated — now = W+2h05m)
|
||
11:35:11 [quiesce] full-system backup due and inside its window, but the automatic update leg is running (it starts no step after 16:29) — deferring to the next poll (`09` decision 20)
|
||
11:35:14 [update-leg] bookstack: step ended done after 55.1 s
|
||
11:35:14 [update-leg] kimai: step pressed … apache-2.57.0 → 2.67.0
|
||
11:36:11 [quiesce] full-system backup due and inside its window, but the automatic update leg is running … — deferring
|
||
11:36:29 [update-leg] kimai: step ended done after 75.1 s
|
||
11:36:29 [update-leg] update leg (manual-chain): done=2 undone=0 held=0 failed=0 skipped=0 in 2m10s
|
||
11:37:11 [quiesce] backup due on 1 tier(s) — quiescing 10 stack(s) ← the first poll AFTER the leg ended
|
||
11:37:38 [quiesce] tier local: backup job backup-9201-1790768258239656621 started — polling
|
||
11:37:48 [quiesce] tier local: job … snapshotted — resuming app early (8B.2)
|
||
11:47:19 [quiesce] tier local: backup job … done
|
||
```
|
||
|
||
Agent (host journal, CEST): `13:37:38 backup: space preflight passed need_bytes=12969135576 avail_bytes=14509867008` ·
|
||
`13:47:12 backup: completed archive=local:backup/vzdump-lxc-9201-2026_09_30-13_37_38.tar.zst size_bytes=9978959837`.
|
||
The old archive was pruned (retention 1); demo-hp has a fresh whole-guest local backup again.
|
||
|
||
**Verdict: R-687 item 4 PROVEN LIVE** — two deferrals while the leg ran, the backup started on the first poll after
|
||
the leg's end line, and it succeeded.
|
||
|
||
**One cosmetic mismatch found (manual chain only):** the deferral says „it starts no step after 16:29" (W+5h of the
|
||
moved window) while this manual leg's own deadline was 16:49 (its start + the leg length, `RunUpdateLegNow`). A night
|
||
leg has both at W+5h. Filed in R-687.
|
||
|
||
## Put back (`C-restore.txt`, `C9-after.txt`)
|
||
|
||
- `controller.yaml` restored from `controller.yaml.pre-gate-day` → `diff` IDENTICAL; no `quiesce:` section; restart →
|
||
`[quiesce] loop started (poll 5m0s …)`.
|
||
- `backup_window_start` (11:29) removed from settings.json with the controller STOPPED (it had never been set) → the page
|
||
reads „Adatbázis-mentés: 02:30 · Helyi másolat: 03:30 · Távoli mentés: 04:15 · Teljes rendszermentés: kb. 04:30–08:30".
|
||
- Scheduler after restart: `db-dump 2026-10-01 02:30 CEST`, `tier2-backup 03:30`, `offbox-backup 04:15` — as before.
|
||
- **Consequence, stated:** the whole-guest local tier ran at 13:37 today, so on 2026-10-01 at 04:30 it is 15 h old and not
|
||
due; it becomes due at 13:37 (outside the window) and runs at the next window, 2026-10-02 04:30. One night without a new
|
||
local whole-guest archive — the box had had none since 2026-09-29 before today anyway.
|
||
- bookstack and kimai: running, healthy, „Naprakész" (the Part B read for demo-hp).
|
||
- Saved copies left on the guest for reference: `controller.yaml.pre-gate-day`, `data/settings.json.pre-gate-day`.
|