Files
felhom.eu/documentation/audits/version-travel-2026-09-26/A5-live/README.md
T

3.2 KiB

A5 live — Part A on 9202 (controller 0.275.0-rc1, drill catalog = live main + one reverted deploy commit)

Method: endpoint level (POST /api/stacks/docmost/update, the backups page's POST /backup/restore form, GET /api/backup/restore-status for the page's sentence), the unit read off the disk, the seed read back through docmost's own front door (a user + login, fixtures.py). Times UTC unless marked.

Shape 2 — the engine step, in the box's OWN night (not pressed by me)

L2-night-leg-log.txt, L2-window-after-night-leg.txt. 00:30 the nightly data run stamped docmost's dump and tars (PostgreSQL 16). 02:15 the automatic leg converted docmost 16 → 18 by itself (precondition: "Tier 2 copy from 00:30:00Z" — the data's time). 02:16:35 the refresh re-captured the unit and KEPT the 16 definition: „the app now runs [… postgres:18 …]; the unit keeps the definition of its data ([… postgres:16 …], written 00:30:00Z)". Manifest: image_pins = 18 (current), data.image_pins = 16, compose/ = 16; restore point offered 00:30:00Z (v0.274.0 offered the refresh's time). The kept pre-conversion copy stayed kept for 7 h (hourly release: no copy after the conversion — pre-fix it went at the first tick after the refresh, R-696).

L3-restore-own-unit-in-window.txt — restore (own unit, helyi) at 09:20: „Restore docmost: the data belongs to [… 16 …]"; 3 volumes + 1 database; back whole at PostgreSQL 16 (PG_VERSION 16, pin postgres:16-alpine), the seed logs in. The page's first sentence: „A(z) docmost visszaállt a(z) 2026-09-27 02:30-i mentésből, a(z) docmost:0.96.0, postgres:16-alpine, redis:7-alpine verzióra. Elérhető frissítés: a doboz lépésenként hozza naprakészre." (02:30 CEST = 00:30Z.) Before the fix the same restore left the app down (A1/S4).

L4-climb-again.* — the guarded Update: backing-up → safety-dump → copying → converting (7 s) → starting → verifying → done in 55.4 s; PG_VERSION 18; the seed logs in.

Shape 1 — the app step (docmost 0.95.0 → 0.96.0), pressed by me

L1-deployed.txt (reinstalled at 0.95.0 via one drill commit, reverted), L5-step-app.* (done 46.2 s), L6-after-refresh-app-step.txt: the capture 7 s after the update KEPT compose/ at 0.95.0; image_pins 0.96.0, data.image_pins 0.95.0, restore point 09:25:42Z = the data. L7-restore-app-step.txt: back at 0.95.0 whole, the seed logs in, docmost logged "No pending database migrations" (pre-fix it ran four migrations unguarded, A1/S2), sentence as above with 0.95.0. L8-climb-app.*: the guarded Update climbed to 0.96.0 in 46.2 s; the seed logs in.

Not observed live

  • The conversion-copy RELEASE on a real 18 dump (needs a nightly data run after a conversion, then an hourly tick): unit-tested (TestA5_TheReleaseRefusesAPreConversionDump), the kept half seen live above.
  • Off-site restore (9202 has no off-site target; the boxes that do are fenced): unit-tested (TestA3_TheOffsiteRestoreBringsTheSnapshotsVersionBack).
  • The English sentence live (the box is Hungarian): unit-tested both languages.

State left: docmost on 9202 at 0.96.0 / PostgreSQL 16 (the automatic leg may convert it again tonight).