version-travel: session record, evidence B/C/D/R, 09 decision 42, 07 §6.5 decision, register 339 -> 336, STATUS (D4)
gates / gates (push) Successful in 26s
gates / gates (push) Successful in 26s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# DRILL — 2026-09-26/27: a backup's data and its version travel together; the next PostgreSQL apps; adventurelog; leftovers
|
||||
|
||||
Brief: "a backup's data and its version always travel together; the next PostgreSQL apps; adventurelog; small leftovers".
|
||||
Architecture read before any claim: `07-backup-architecture.md` §6 (now §6.6 added), `09-update-architecture.md` §3
|
||||
decisions 13–42, §5.3, §6.4 parts 4, 5, 10. Evidence: `audits/version-travel-2026-09-26/`.
|
||||
|
||||
## Not done, or changed
|
||||
|
||||
- **One controller release (v0.275.0), not two**, with Parts A, D2–D4 and **R-699** (found live during Part B, filed and
|
||||
fixed). Live proofs ran on `0.275.0-rc1` (identical except R-699); 0.275.0 itself ran the adventurelog box proof.
|
||||
- **The session paused ~17 h** (usage limit) between the build and the live proof. In that gap the box's own night ran the
|
||||
engine step on docmost, which became the shape-2 live proof — observed, not pressed.
|
||||
- **R-691 (2) NOT built** — Load does not look at the off-site copy. (1) built and red-proofed, **not live-proven** (no
|
||||
nextcloud kept folder existed on 9202).
|
||||
- **Part B moved 2 apps** (paperless-ngx, tandoor). calcom and claper were not attempted (no seed route in the fixtures).
|
||||
- **adventurelog's health fix is a DROP of the override, not `/usr/bin/node`**: no single node path works on both versions
|
||||
(measured). It rides the image move in the same commit, as asked.
|
||||
- **Off-site restore NOT exercised live** (9202 has no off-site target; the boxes that do are fenced). Unit-tested.
|
||||
- **The conversion-copy RELEASE on a real 18 dump not observed** — due on 9202 after tonight's 00:30 data run.
|
||||
- **D1's scheduled restore-test cycle on demo-hp**: due ~18:28 CEST, read into `D1/D1-cycle-demo-hp.txt` if the session is
|
||||
still alive; otherwise it is the first thing to read.
|
||||
- **Part E (night watch) not done.**
|
||||
- D4 is **not ruled**: option A is built and in force (STATUS).
|
||||
|
||||
## Claims in the brief, judged
|
||||
|
||||
1. *`CaptureRecoveryUnit` rewrites `compose/` and `image_pins` before the data is refreshed* — **TRUE** (measured: the
|
||||
refresh 2 min after the update rewrote both; the dumps stayed).
|
||||
2. *A restore replays the database's raw volume tar before the SQL dump* — **TRUE** (`restore_unit.go`; live: the 16 datadir
|
||||
tar replaced the volume first).
|
||||
3. *The 18 definition over a 16 tar does X* — **REFUSED by the engine, and the app was left DOWN**: `postgres:18` refused the
|
||||
old layout, the replay timed out, the start failed. Not "a fresh cluster with the SQL".
|
||||
4. *A restored version older than the ladder would jump* — **TRUE for a person's press, FALSE for the automatic leg**
|
||||
(`LegSkipOlderThanLadder` already refuses). The page now says the box will not update it by itself.
|
||||
5. *`07` says nothing on which version a restore brings back* — **TRUE** for `07` (only `09` §5.3 said the restore pins to
|
||||
the unit's compose). `07` §6.6 now says it.
|
||||
|
||||
## A — the data and its version (R-696)
|
||||
|
||||
A1 spike (`A1/README.md`) → A2–A4 built (stamps, the definition kept with its data, restore guard, off-site definition,
|
||||
data times on all three tiers, release needs a dump on the new major) → red-proofs RP1–RP6 (`A5-redproofs/`) → live
|
||||
(`A5-live/README.md`): shape 2 in the box's own night (restore offered 00:30 = the data; restore back whole at 16 with the
|
||||
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."; climb again 55 s); shape 1 (back
|
||||
whole at 0.95.0, "No pending database migrations"; climb 46 s). A7: 42 of 42 ladder digests resolve; filed R-698.
|
||||
|
||||
## B, C, D
|
||||
|
||||
B: `B/README.md` — paperless-ngx → 18 and tandoor → 17, both venues, engine gate ALLOWED, catalog `46affe0`, `53b84ca`.
|
||||
C: `C/README.md` — adventurelog v0.13.0, catalog `06ea7da`. D1 agent v0.135.0 (signed delivery to both hosts); D2 R-695;
|
||||
D3 R-691 (1); D4 R-694 (per-app measurement, 6 of 7 keep the login in their data).
|
||||
|
||||
## Teardown
|
||||
|
||||
- **Machine:** bench LXC 9401 created and destroyed (hostname checked), template removed. 9202: docmost, tandoor and
|
||||
adventurelog removed through the product; paperless-ngx (standing) now on PostgreSQL 18 like the live catalog, its kept
|
||||
16 copy waiting for the release; back on the LIVE catalog (`controller.yaml.pre-vt0926`), controller 0.275.0. Drill repo
|
||||
reset to live `main` (`f1a7d6c`).
|
||||
- **Host:** demo-hp `pct list` 9201 + 9202 only; `local` and `nvme-scratch` as before the bench.
|
||||
- **Hub:** global floor 0.275.0 (declared MinAgent 0.131.0); two signed `agent_update` jobs consumed; no customer or
|
||||
appliance created.
|
||||
|
||||
## Register
|
||||
|
||||
Before: **339 rows / 682,159 B** (the brief's count). Opened R-697, R-698, R-699; closed R-655, R-689, R-694, R-695, R-696,
|
||||
R-699 (moved to `CLOSED-ITEMS.md`); narrowed R-691 (to its (2)) and R-463 (3 of 11 moved). After: **336 rows / 678,058 B**.
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
# R-699 red-proof — a definition-only unit accepted (v0.274.0 / rc1 shape)
|
||||
a_version_travel_test.go:595: the precondition accepted tier 1 at 2026-09-27 09:43:08 +0000 UTC — a unit with no data is not a copy
|
||||
--- FAIL: TestR699_ADefinitionOnlyUnitIsNotAPreconditionCopy (0.00s)
|
||||
FAIL
|
||||
FAIL gitea.dooplex.hu/admin/felhom-controller/internal/backup 0.008s
|
||||
FAIL
|
||||
@@ -0,0 +1,7 @@
|
||||
VMID Status Lock Name
|
||||
9201 running demo-hp
|
||||
9202 running demo-hp-scratch
|
||||
local dir active 40453376 22919900 15446360 56.66%
|
||||
nvme-scratch dir active 983379700 75028908 858324180 7.63%
|
||||
total used free shared buff/cache available
|
||||
Mem: 29 6 11 0 12 23
|
||||
@@ -0,0 +1,8 @@
|
||||
download of 'http://download.proxmox.com/images/system/debian-13-standard_13.6-1_amd64.tar.zst' to '/var/lib/vz/template/cache/debian-13-standard_13.6-1_amd64.tar.zst' finished
|
||||
Creating SSH host key 'ssh_host_ecdsa_key' - this may take some time ...
|
||||
done: SHA256:NNo2rVOhZjaTMhKYXI2z7nZzWZe672bnB+EkWCOFvQE root@upgrade-harness
|
||||
192.168.0.124/24
|
||||
Docker version 26.1.5+dfsg1, build a72d7cd
|
||||
Docker Compose version 2.26.1-4
|
||||
Python 3.13.5
|
||||
net-ok
|
||||
@@ -0,0 +1,8 @@
|
||||
hostname: upgrade-harness
|
||||
purging CT 9401 from related configurations..
|
||||
destroyed-9401
|
||||
VMID Status Lock Name
|
||||
9201 running demo-hp
|
||||
9202 running demo-hp-scratch
|
||||
local dir active 40453376 22942648 15423612 56.71%
|
||||
nvme-scratch dir active 983379700 75279156 858073932 7.66%
|
||||
@@ -0,0 +1,14 @@
|
||||
# B — the next PostgreSQL apps (2026-09-27)
|
||||
|
||||
Targets (`09` §3 decision 42, read from each upstream): paperless-ngx → 18 (upstream compose ships `postgres:18` at
|
||||
`/var/lib/postgresql`, Django ~5.2.5, psycopg 3); tandoor → 17 (upstream compose ships `postgres:16-alpine`; Django 5.2.16
|
||||
documents up to 17). calcom and claper were not taken (no seed route in the fixtures); outline, rallly, zipline have none (R-624).
|
||||
|
||||
| app | bench (LXC 9401, `apps/<app>/bench/`) | box 9202 (`apps/<app>/box/`) |
|
||||
|---|---|---|
|
||||
| paperless-ngx | converted 35.4 s, check equal over 72 tables, seed ✓; memory anon peaks: webserver 40.0 %, postgres 3.8 %; 0 restarts | precondition: Tier 2 copy of 00:30Z; converted 16 → 18 in 10.6 s (72 tables, 812 rows equal); done 64.6 s; seed ✓; pre-conversion copy KEPT |
|
||||
| tandoor | converted 23.6 s, 100 tables equal, seed ✓; tandoor app anon peak 78.7 % (cgroup 97.8 % = file cache), postgres 5.1 % | converted 16 → 17 in 11.4 s (100 tables, 687 rows equal); done 52.3 s; seed ✓ — this run found R-699 |
|
||||
|
||||
Written into the live catalog by `upgrade-test.py --write-ladder` (`46affe0`, `53b84ca`); the engine gate printed ALLOWED for both.
|
||||
Bench created and destroyed this session (`B1-bench-create.txt`, `B9-bench-destroy.txt`). demo-hp runs paperless-ngx: its
|
||||
automatic leg converts it on its next night (controller 0.275.0).
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
[09:33:45] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[09:33:45] MV-paperless-ngx: deploying paperless-ngx at FROM {'paperless-webserver': 'ghcr.io/paperless-ngx/paperless-ngx:2.20.15', 'paperless-postgres': 'postgres:16-alpine', 'paperless-redis': 'redis:7-alpine'}
|
||||
[09:35:37] FROM settled=True in 62.2s :: {"paperless-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-webserver": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:35:37] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[09:35:45] paperless-webserver: createsuperuser :: Superuser created successfully.
|
||||
[09:35:51] paperless-webserver: seeded superuser drill248892
|
||||
[09:36:03] paperless-webserver: readback of the seeded account found=True
|
||||
[09:36:03] C1 (seed reads back BEFORE): True
|
||||
[09:36:04] MV-paperless-ngx: PostgreSQL major move {'service': 'paperless-postgres', 'engine': 'postgres', 'from': 16, 'to': 18} — converting on the bench before the swap
|
||||
[09:36:39] CONVERTED paperless-postgres PostgreSQL 16 -> 18 in 35.4s (dump 0.63s / 246453 B, load 2.59s, check equal over 72 tables)
|
||||
[09:36:39] MV-paperless-ngx: swapping to TO {'paperless-webserver': 'ghcr.io/paperless-ngx/paperless-ngx:2.20.15', 'paperless-postgres': 'postgres:18-alpine', 'paperless-redis': 'redis:7-alpine'}
|
||||
[09:36:50] TO up -d rc=0
|
||||
[09:37:22] TO settled=True in 31.5s :: {"paperless-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-webserver": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:37:22] engine state paperless-postgres: 18
|
||||
[09:37:22] migration lines observed: 4
|
||||
[09:37:33] paperless-webserver: readback of the seeded account found=True
|
||||
[09:37:33] RESULT (seed reads back AFTER): True
|
||||
[09:37:33] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8000
|
||||
[09:37:48] + 15s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=298
|
||||
[09:38:04] + 30s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=5M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=594
|
||||
[09:38:19] + 46s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=888
|
||||
[09:38:34] + 61s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=1184
|
||||
[09:38:49] + 76s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=1480
|
||||
[09:39:04] + 91s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=1776
|
||||
[09:39:19] + 106s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=2072
|
||||
[09:39:35] + 121s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=2366
|
||||
[09:39:50] + 136s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=2662
|
||||
[09:40:05] + 152s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=2958
|
||||
[09:40:20] + 167s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=532M/1280M peak=630M kills=0 rs=0 reqs=3254
|
||||
[09:40:35] + 182s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=3550
|
||||
[09:40:50] + 197s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=3843
|
||||
[09:41:06] + 212s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4139
|
||||
[09:41:21] + 227s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4434
|
||||
[09:41:36] + 243s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4730
|
||||
[09:41:51] + 258s paperless-postgres=123M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5026
|
||||
[09:42:06] + 273s paperless-postgres=124M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5322
|
||||
[09:42:21] + 288s paperless-postgres=126M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5618
|
||||
[09:42:36] + 303s paperless-postgres=126M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5914
|
||||
[09:42:52] + 318s paperless-postgres=128M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=6208
|
||||
[09:43:07] + 334s paperless-postgres=129M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=6502
|
||||
[09:43:22] + 349s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=6798
|
||||
[09:43:37] + 364s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7095
|
||||
[09:43:52] + 379s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7392
|
||||
[09:44:07] + 394s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7686
|
||||
[09:44:23] + 409s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7982
|
||||
[09:44:38] + 424s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8278
|
||||
[09:44:53] + 440s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8576
|
||||
[09:45:08] + 455s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8874
|
||||
[09:45:23] + 470s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9168
|
||||
[09:45:39] + 485s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9464
|
||||
[09:45:54] + 500s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9760
|
||||
[09:46:09] + 516s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=10056
|
||||
[09:46:24] + 531s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10352
|
||||
[09:46:39] + 546s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10648
|
||||
[09:46:54] + 561s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10944
|
||||
[09:47:10] + 576s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=11240
|
||||
[09:47:25] + 591s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=11536
|
||||
[09:47:40] + 607s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=11832
|
||||
[09:47:40] memory watch: killed=False tight=[] requests=11832 codes={'302': 11832}
|
||||
[09:47:40] MV-paperless-ngx: ABORT — putting the FROM images back
|
||||
[09:50:50] ABORT: the app did NOT come back (rc=1, 180.5s)
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-paperless-ngx",
|
||||
"app": "paperless-ngx",
|
||||
"note": "night 2026-09-23 within-a-major move: paperless-postgres=postgres:18-alpine",
|
||||
"from": {
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15",
|
||||
"paperless-postgres": "postgres:16-alpine",
|
||||
"paperless-redis": "redis:7-alpine"
|
||||
},
|
||||
"to": {
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15",
|
||||
"paperless-postgres": "postgres:18-alpine",
|
||||
"paperless-redis": "redis:7-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kpaperless-webserver | [init-migrations] Apply database migrations...",
|
||||
"abort": "refuses",
|
||||
"abort_detail": "less-postgres | The files belonging to this database system will be owned by user \"postgres\".\n\u001b[2Kpaperless-postgres | This user must also own the server process.\n\u001b[2Kpaperless-postgres | \n\u001b[2Kpaperless-postgres | initdb: error: directory \"/var/lib/postgresql/data\" exists but is not empty\n\u001b[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory \"/var/lib/postgresql/data\" or run initdb with an argument other than \"/var/lib/postgresql/data\".\n\u001b[2Kpaperless-postgres | The database cluster will be initialized with locale \"en_US.utf8\".\n\u001b[2Kpaperless-postgres | The default database encoding has accordingly been set to \"UTF8\".\n\u001b[2Kpaperless-postgres | The default text search configuration will be set to \"english\".\n\u001b[2Kpaperless-postgres | \n\u001b[2Kpaperless-postgres | Data page checksums are disabled.\n\u001b[2Kpaperless-postgres |",
|
||||
"engine_state_after": {
|
||||
"paperless-postgres": {
|
||||
"image": "postgres:18-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "18",
|
||||
"probe_rc": 0
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 606.9,
|
||||
"requested_s": 600,
|
||||
"requests": 11832,
|
||||
"codes": {
|
||||
"302": 11832
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"paperless-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 193302528,
|
||||
"peak_pct": 0.72,
|
||||
"anon_peak_sampled": 10256384,
|
||||
"anon_peak_pct": 0.038,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"paperless-redis": {
|
||||
"limit": 134217728,
|
||||
"peak": 7303168,
|
||||
"peak_pct": 0.054,
|
||||
"anon_peak_sampled": 3137536,
|
||||
"anon_peak_pct": 0.023,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"paperless-webserver": {
|
||||
"limit": 1342177280,
|
||||
"peak": 660705280,
|
||||
"peak_pct": 0.492,
|
||||
"anon_peak_sampled": 537432064,
|
||||
"anon_peak_pct": 0.4,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 31.5,
|
||||
"measured_at": "2026-09-27T09:50:50Z",
|
||||
"evidence": "evidence/MV-paperless-ngx",
|
||||
"scratch_cleared": [],
|
||||
"engine_conversion": {
|
||||
"service": "paperless-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 18,
|
||||
"dump_s": 0.63,
|
||||
"dump_bytes": 246453,
|
||||
"new_engine_ready_s": 6.4,
|
||||
"load_s": 2.59,
|
||||
"dropped": [
|
||||
"paperless"
|
||||
],
|
||||
"skipped_create_role": [
|
||||
"CREATE ROLE paperless;"
|
||||
],
|
||||
"result": "converted",
|
||||
"check_equal": true,
|
||||
"pg_version": "18",
|
||||
"tables": 72,
|
||||
"convert_s": 35.4
|
||||
},
|
||||
"files_changed": [],
|
||||
"total_s": 1024.4
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.893 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.894 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Running mode=standalone, port=6379.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Server initialized
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.900 * Creating AOF base file appendonly.aof.1.base.rdb on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Creating AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Ready to accept connections tcp
|
||||
[2Kpaperless-redis | 1:signal-handler (1790501771) Received SIGTERM scheduling shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * User requested shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * Calling fsync() on the AOF file.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.597 * Saving the final RDB snapshot before exiting.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 * DB saved on disk
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 # Redis is now ready to exit, bye bye...
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.937 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Running mode=standalone, port=6379.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Server initialized
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Reading RDB base file on AOF loading...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Loading RDB produced by version 7.4.11
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB age 135 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB memory usage when created 0.90 Mb
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB is base AOF
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Done loading RDB, keys loaded: 0, keys expired: 0.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from base file appendonly.aof.1.base.rdb: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from incr file appendonly.aof.1.incr.aof: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from append only file: 0.001 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Opening AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Ready to accept connections tcp
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"paperless-postgres": {
|
||||
"status": "restarting",
|
||||
"health": "unhealthy",
|
||||
"restarts": 0,
|
||||
"exit": 1
|
||||
},
|
||||
"paperless-redis": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"paperless-webserver": {
|
||||
"status": "created",
|
||||
"health": null,
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.893 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.894 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Running mode=standalone, port=6379.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Server initialized
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.900 * Creating AOF base file appendonly.aof.1.base.rdb on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Creating AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Ready to accept connections tcp
|
||||
[2Kpaperless-redis | 1:signal-handler (1790501771) Received SIGTERM scheduling shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * User requested shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * Calling fsync() on the AOF file.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.597 * Saving the final RDB snapshot before exiting.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 * DB saved on disk
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 # Redis is now ready to exit, bye bye...
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.937 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Running mode=standalone, port=6379.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Server initialized
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Reading RDB base file on AOF loading...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Loading RDB produced by version 7.4.11
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB age 135 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB memory usage when created 0.90 Mb
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB is base AOF
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Done loading RDB, keys loaded: 0, keys expired: 0.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from base file appendonly.aof.1.base.rdb: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from incr file appendonly.aof.1.incr.aof: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from append only file: 0.001 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Opening AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Ready to accept connections tcp
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: error: directory "/var/lib/postgresql/data" exists but is not empty
|
||||
[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are disabled.
|
||||
[2Kpaperless-postgres |
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
db:paperless owner=paperless enc=UTF8 coll=en_US.utf8
|
||||
db:postgres owner=paperless enc=UTF8 coll=en_US.utf8
|
||||
ext:paperless:plpgsql
|
||||
role:paperless super=true login=true pw=true
|
||||
rows:paperless:public.account_emailaddress=0
|
||||
rows:paperless:public.account_emailconfirmation=0
|
||||
rows:paperless:public.auditlog_logentry=0
|
||||
rows:paperless:public.auth_group=0
|
||||
rows:paperless:public.auth_group_permissions=0
|
||||
rows:paperless:public.auth_permission=176
|
||||
rows:paperless:public.auth_user=4
|
||||
rows:paperless:public.auth_user_groups=0
|
||||
rows:paperless:public.auth_user_user_permissions=0
|
||||
rows:paperless:public.authtoken_token=0
|
||||
rows:paperless:public.django_admin_log=0
|
||||
rows:paperless:public.django_celery_results_chordcounter=0
|
||||
rows:paperless:public.django_celery_results_groupresult=0
|
||||
rows:paperless:public.django_celery_results_taskresult=0
|
||||
rows:paperless:public.django_content_type=44
|
||||
rows:paperless:public.django_migrations=216
|
||||
rows:paperless:public.django_session=0
|
||||
rows:paperless:public.documents_correspondent=0
|
||||
rows:paperless:public.documents_customfield=0
|
||||
rows:paperless:public.documents_customfieldinstance=0
|
||||
rows:paperless:public.documents_document=0
|
||||
rows:paperless:public.documents_document_tags=0
|
||||
rows:paperless:public.documents_documenttype=0
|
||||
rows:paperless:public.documents_note=0
|
||||
rows:paperless:public.documents_paperlesstask=0
|
||||
rows:paperless:public.documents_savedview=0
|
||||
rows:paperless:public.documents_savedviewfilterrule=0
|
||||
rows:paperless:public.documents_sharelink=0
|
||||
rows:paperless:public.documents_storagepath=0
|
||||
rows:paperless:public.documents_tag=0
|
||||
rows:paperless:public.documents_uisettings=0
|
||||
rows:paperless:public.documents_workflow=0
|
||||
rows:paperless:public.documents_workflow_actions=0
|
||||
rows:paperless:public.documents_workflow_triggers=0
|
||||
rows:paperless:public.documents_workflowaction=0
|
||||
rows:paperless:public.documents_workflowaction_assign_change_groups=0
|
||||
rows:paperless:public.documents_workflowaction_assign_change_users=0
|
||||
rows:paperless:public.documents_workflowaction_assign_custom_fields=0
|
||||
rows:paperless:public.documents_workflowaction_assign_tags=0
|
||||
rows:paperless:public.documents_workflowaction_assign_view_groups=0
|
||||
rows:paperless:public.documents_workflowaction_assign_view_users=0
|
||||
rows:paperless:public.documents_workflowaction_remove_change_groups=0
|
||||
rows:paperless:public.documents_workflowaction_remove_change_users=0
|
||||
rows:paperless:public.documents_workflowaction_remove_correspondents=0
|
||||
rows:paperless:public.documents_workflowaction_remove_custom_fields=0
|
||||
rows:paperless:public.documents_workflowaction_remove_document_types=0
|
||||
rows:paperless:public.documents_workflowaction_remove_owners=0
|
||||
rows:paperless:public.documents_workflowaction_remove_storage_paths=0
|
||||
rows:paperless:public.documents_workflowaction_remove_tags=0
|
||||
rows:paperless:public.documents_workflowaction_remove_view_groups=0
|
||||
rows:paperless:public.documents_workflowaction_remove_view_users=0
|
||||
rows:paperless:public.documents_workflowactionemail=0
|
||||
rows:paperless:public.documents_workflowactionwebhook=0
|
||||
rows:paperless:public.documents_workflowrun=0
|
||||
rows:paperless:public.documents_workflowtrigger=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_all_tags=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_correspondents=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_document_types=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_storage_paths=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_tags=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_tags=0
|
||||
rows:paperless:public.guardian_groupobjectpermission=0
|
||||
rows:paperless:public.guardian_userobjectpermission=0
|
||||
rows:paperless:public.mfa_authenticator=0
|
||||
rows:paperless:public.paperless_applicationconfiguration=1
|
||||
rows:paperless:public.paperless_mail_mailaccount=0
|
||||
rows:paperless:public.paperless_mail_mailrule=0
|
||||
rows:paperless:public.paperless_mail_mailrule_assign_tags=0
|
||||
rows:paperless:public.paperless_mail_processedmail=0
|
||||
rows:paperless:public.socialaccount_socialaccount=0
|
||||
rows:paperless:public.socialaccount_socialapp=0
|
||||
rows:paperless:public.socialaccount_socialtoken=0
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
db:paperless owner=paperless enc=UTF8 coll=en_US.utf8
|
||||
db:postgres owner=paperless enc=UTF8 coll=en_US.utf8
|
||||
ext:paperless:plpgsql
|
||||
role:paperless super=true login=true pw=true
|
||||
rows:paperless:public.account_emailaddress=0
|
||||
rows:paperless:public.account_emailconfirmation=0
|
||||
rows:paperless:public.auditlog_logentry=0
|
||||
rows:paperless:public.auth_group=0
|
||||
rows:paperless:public.auth_group_permissions=0
|
||||
rows:paperless:public.auth_permission=176
|
||||
rows:paperless:public.auth_user=4
|
||||
rows:paperless:public.auth_user_groups=0
|
||||
rows:paperless:public.auth_user_user_permissions=0
|
||||
rows:paperless:public.authtoken_token=0
|
||||
rows:paperless:public.django_admin_log=0
|
||||
rows:paperless:public.django_celery_results_chordcounter=0
|
||||
rows:paperless:public.django_celery_results_groupresult=0
|
||||
rows:paperless:public.django_celery_results_taskresult=0
|
||||
rows:paperless:public.django_content_type=44
|
||||
rows:paperless:public.django_migrations=216
|
||||
rows:paperless:public.django_session=0
|
||||
rows:paperless:public.documents_correspondent=0
|
||||
rows:paperless:public.documents_customfield=0
|
||||
rows:paperless:public.documents_customfieldinstance=0
|
||||
rows:paperless:public.documents_document=0
|
||||
rows:paperless:public.documents_document_tags=0
|
||||
rows:paperless:public.documents_documenttype=0
|
||||
rows:paperless:public.documents_note=0
|
||||
rows:paperless:public.documents_paperlesstask=0
|
||||
rows:paperless:public.documents_savedview=0
|
||||
rows:paperless:public.documents_savedviewfilterrule=0
|
||||
rows:paperless:public.documents_sharelink=0
|
||||
rows:paperless:public.documents_storagepath=0
|
||||
rows:paperless:public.documents_tag=0
|
||||
rows:paperless:public.documents_uisettings=0
|
||||
rows:paperless:public.documents_workflow=0
|
||||
rows:paperless:public.documents_workflow_actions=0
|
||||
rows:paperless:public.documents_workflow_triggers=0
|
||||
rows:paperless:public.documents_workflowaction=0
|
||||
rows:paperless:public.documents_workflowaction_assign_change_groups=0
|
||||
rows:paperless:public.documents_workflowaction_assign_change_users=0
|
||||
rows:paperless:public.documents_workflowaction_assign_custom_fields=0
|
||||
rows:paperless:public.documents_workflowaction_assign_tags=0
|
||||
rows:paperless:public.documents_workflowaction_assign_view_groups=0
|
||||
rows:paperless:public.documents_workflowaction_assign_view_users=0
|
||||
rows:paperless:public.documents_workflowaction_remove_change_groups=0
|
||||
rows:paperless:public.documents_workflowaction_remove_change_users=0
|
||||
rows:paperless:public.documents_workflowaction_remove_correspondents=0
|
||||
rows:paperless:public.documents_workflowaction_remove_custom_fields=0
|
||||
rows:paperless:public.documents_workflowaction_remove_document_types=0
|
||||
rows:paperless:public.documents_workflowaction_remove_owners=0
|
||||
rows:paperless:public.documents_workflowaction_remove_storage_paths=0
|
||||
rows:paperless:public.documents_workflowaction_remove_tags=0
|
||||
rows:paperless:public.documents_workflowaction_remove_view_groups=0
|
||||
rows:paperless:public.documents_workflowaction_remove_view_users=0
|
||||
rows:paperless:public.documents_workflowactionemail=0
|
||||
rows:paperless:public.documents_workflowactionwebhook=0
|
||||
rows:paperless:public.documents_workflowrun=0
|
||||
rows:paperless:public.documents_workflowtrigger=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_all_tags=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_correspondents=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_document_types=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_storage_paths=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_not_tags=0
|
||||
rows:paperless:public.documents_workflowtrigger_filter_has_tags=0
|
||||
rows:paperless:public.guardian_groupobjectpermission=0
|
||||
rows:paperless:public.guardian_userobjectpermission=0
|
||||
rows:paperless:public.mfa_authenticator=0
|
||||
rows:paperless:public.paperless_applicationconfiguration=1
|
||||
rows:paperless:public.paperless_mail_mailaccount=0
|
||||
rows:paperless:public.paperless_mail_mailrule=0
|
||||
rows:paperless:public.paperless_mail_mailrule_assign_tags=0
|
||||
rows:paperless:public.paperless_mail_processedmail=0
|
||||
rows:paperless:public.socialaccount_socialaccount=0
|
||||
rows:paperless:public.socialaccount_socialapp=0
|
||||
rows:paperless:public.socialaccount_socialtoken=0
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"paperless-postgres": {
|
||||
"image": "postgres:18-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "18",
|
||||
"probe_rc": 0
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"/srv/felhom-gate/hdd/appdata/paperless/export": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"/srv/felhom-gate/hdd/appdata/paperless/media": "3d56384a871d4d286ff78c003cf877c8708bf525f82961a087edae6d911d4506",
|
||||
"/srv/felhom-gate/import/paperless": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"/srv/felhom-gate/hdd/appdata/paperless/export": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"/srv/felhom-gate/hdd/appdata/paperless/media": "3d56384a871d4d286ff78c003cf877c8708bf525f82961a087edae6d911d4506",
|
||||
"/srv/felhom-gate/import/paperless": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
+1562
File diff suppressed because it is too large
Load Diff
+4
@@ -0,0 +1,4 @@
|
||||
[2Kpaperless-webserver | [init-migrations] Apply database migrations...
|
||||
[2Kpaperless-webserver | Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount
|
||||
[2Kpaperless-webserver | Running migrations:
|
||||
[2Kpaperless-webserver | No migrations to apply.
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
[09:33:45] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[09:33:45] MV-paperless-ngx: deploying paperless-ngx at FROM {'paperless-webserver': 'ghcr.io/paperless-ngx/paperless-ngx:2.20.15', 'paperless-postgres': 'postgres:16-alpine', 'paperless-redis': 'redis:7-alpine'}
|
||||
[09:35:37] FROM settled=True in 62.2s :: {"paperless-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-webserver": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:35:37] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[09:35:45] paperless-webserver: createsuperuser :: Superuser created successfully.
|
||||
[09:35:51] paperless-webserver: seeded superuser drill248892
|
||||
[09:36:03] paperless-webserver: readback of the seeded account found=True
|
||||
[09:36:03] C1 (seed reads back BEFORE): True
|
||||
[09:36:04] MV-paperless-ngx: PostgreSQL major move {'service': 'paperless-postgres', 'engine': 'postgres', 'from': 16, 'to': 18} — converting on the bench before the swap
|
||||
[09:36:39] CONVERTED paperless-postgres PostgreSQL 16 -> 18 in 35.4s (dump 0.63s / 246453 B, load 2.59s, check equal over 72 tables)
|
||||
[09:36:39] MV-paperless-ngx: swapping to TO {'paperless-webserver': 'ghcr.io/paperless-ngx/paperless-ngx:2.20.15', 'paperless-postgres': 'postgres:18-alpine', 'paperless-redis': 'redis:7-alpine'}
|
||||
[09:36:50] TO up -d rc=0
|
||||
[09:37:22] TO settled=True in 31.5s :: {"paperless-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-redis": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "paperless-webserver": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:37:22] engine state paperless-postgres: 18
|
||||
[09:37:22] migration lines observed: 4
|
||||
[09:37:33] paperless-webserver: readback of the seeded account found=True
|
||||
[09:37:33] RESULT (seed reads back AFTER): True
|
||||
[09:37:33] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:8000
|
||||
[09:37:48] + 15s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=298
|
||||
[09:38:04] + 30s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=5M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=594
|
||||
[09:38:19] + 46s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=888
|
||||
[09:38:34] + 61s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=1184
|
||||
[09:38:49] + 76s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=5M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=1480
|
||||
[09:39:04] + 91s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=1776
|
||||
[09:39:19] + 106s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=2072
|
||||
[09:39:35] + 121s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=535M/1280M peak=630M kills=0 rs=0 reqs=2366
|
||||
[09:39:50] + 136s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=536M/1280M peak=630M kills=0 rs=0 reqs=2662
|
||||
[09:40:05] + 152s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=2958
|
||||
[09:40:20] + 167s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=532M/1280M peak=630M kills=0 rs=0 reqs=3254
|
||||
[09:40:35] + 182s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=3550
|
||||
[09:40:50] + 197s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=3843
|
||||
[09:41:06] + 212s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4139
|
||||
[09:41:21] + 227s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4434
|
||||
[09:41:36] + 243s paperless-postgres=122M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=4730
|
||||
[09:41:51] + 258s paperless-postgres=123M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5026
|
||||
[09:42:06] + 273s paperless-postgres=124M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5322
|
||||
[09:42:21] + 288s paperless-postgres=126M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5618
|
||||
[09:42:36] + 303s paperless-postgres=126M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=5914
|
||||
[09:42:52] + 318s paperless-postgres=128M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=6208
|
||||
[09:43:07] + 334s paperless-postgres=129M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=6502
|
||||
[09:43:22] + 349s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=6798
|
||||
[09:43:37] + 364s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7095
|
||||
[09:43:52] + 379s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7392
|
||||
[09:44:07] + 394s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7686
|
||||
[09:44:23] + 409s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=7982
|
||||
[09:44:38] + 424s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8278
|
||||
[09:44:53] + 440s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8576
|
||||
[09:45:08] + 455s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=8874
|
||||
[09:45:23] + 470s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9168
|
||||
[09:45:39] + 485s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9464
|
||||
[09:45:54] + 500s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=9760
|
||||
[09:46:09] + 516s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=10056
|
||||
[09:46:24] + 531s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10352
|
||||
[09:46:39] + 546s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=4M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10648
|
||||
[09:46:54] + 561s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=10944
|
||||
[09:47:10] + 576s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=11240
|
||||
[09:47:25] + 591s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=534M/1280M peak=630M kills=0 rs=0 reqs=11536
|
||||
[09:47:40] + 607s paperless-postgres=131M/256M peak=184M kills=0 rs=0 paperless-redis=3M/128M peak=6M kills=0 rs=0 paperless-webserver=533M/1280M peak=630M kills=0 rs=0 reqs=11832
|
||||
[09:47:40] memory watch: killed=False tight=[] requests=11832 codes={'302': 11832}
|
||||
[09:47:40] MV-paperless-ngx: ABORT — putting the FROM images back
|
||||
[09:50:50] ABORT: the app did NOT come back (rc=1, 180.5s)
|
||||
+432
@@ -0,0 +1,432 @@
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.893 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:34:24.894 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.894 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Running mode=standalone, port=6379.
|
||||
[2K[2K[2Kpaperless-webserver | [init-start] paperless-ngx docker container starting...
|
||||
[2Kpaperless-webserver | [init-start] paperless-ngx docker container starting init as root
|
||||
[2Kpaperless-webserver | [env-init] Checking for environment from files
|
||||
[2Kpaperless-webserver | [env-init] No *_FILE environment found
|
||||
[2Kpaperless-webserver | [init-redis-wait] Waiting for Redis to report ready
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Checking if additional teseract languages needed
|
||||
[2Kpaperless-webserver | [init-db-wait] Waiting for PostgreSQL to start...
|
||||
[2Kpaperless-webserver | Installing languages...
|
||||
[2Kpaperless-webserver | [init-user] No UID changes for paperless
|
||||
[2Kpaperless-webserver | [init-user] No GID changes for paperless
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Package tesseract-ocr-eng already installed!
|
||||
paperless-redis | 1:M 27 Sep 2026 11:34:24.896 * Server initialized
|
||||
[2Kpaperless-webserver | [init-folders] Running with root privileges, adjusting directories and permissions
|
||||
[2Kpaperless-webserver | mkdir: created directory '/tmp/paperless'
|
||||
[2Kpaperless-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kpaperless-postgres | This user must also own the server process.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kpaperless-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kpaperless-postgres | The default text search configuration will be set to "english".
|
||||
paperless-webserver | [init-tesseract-langs] Package tesseract-ocr-deu already installed!
|
||||
[2Kpaperless-webserver | mkdir: created directory '/usr/src/paperless/data/index'
|
||||
[2Kpaperless-webserver | mkdir: created directory '/usr/src/paperless/media/documents'
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Data page checksums are enabled.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-webserver | mkdir: created directory '/usr/src/paperless/media/documents/originals'
|
||||
[2Kpaperless-webserver | mkdir: created directory '/usr/src/paperless/media/documents/thumbnails'
|
||||
[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/export' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/data/index' from root:root to paperless:paperless
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.900 * Creating AOF base file appendonly.aof.1.base.rdb on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Creating AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:34:24.905 * Ready to accept connections tcp
|
||||
[2Kpaperless-redis | 1:signal-handler (1790501771) Received SIGTERM scheduling shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * User requested shutdown...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.595 * Calling fsync() on the AOF file.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.597 * Saving the final RDB snapshot before exiting.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 * DB saved on disk
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:11.609 # Redis is now ready to exit, bye bye...
|
||||
[2K[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
|
||||
paperless-webserver | changed ownership of '/usr/src/paperless/media' from root:root to paperless:paperless
|
||||
[2Kpaperless-postgres | fixing permissions on existing directory /var/lib/postgresql/18/docker ... ok
|
||||
[2K[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/media/documents' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/media/documents/thumbnails' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/media/documents/originals' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | changed ownership of '/usr/src/paperless/consume' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | changed ownership of '/tmp/paperless' from root:root to paperless:paperless
|
||||
[2Kpaperless-webserver | paperless-postgres:5432 - accepting connections
|
||||
[2Kpaperless-webserver | [init-db-wait] Connected to PostgreSQL
|
||||
[2Kpaperless-webserver | [init-db-wait] Database is ready
|
||||
[2Kpaperless-webserver | [init-migrations] Apply database migrations...
|
||||
[2Kpaperless-webserver | Waiting for Redis...
|
||||
[2Kpaperless-webserver | Connected to Redis broker.
|
||||
[2Kpaperless-webserver | [init-redis-wait] Redis ready
|
||||
[2Kpaperless-webserver | Operations to perform:
|
||||
[2K[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Redis version=7.4.11, bits=64, commit=00000000, modified=0, pid=1, just started
|
||||
paperless-postgres | creating subdirectories ... ok
|
||||
[2Kpaperless-redis | 1:C 27 Sep 2026 11:36:39.936 * Configuration loaded
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.937 * monotonic clock: POSIX clock_gettime
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Running mode=standalone, port=6379.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.938 * Server initialized
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Reading RDB base file on AOF loading...
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Loading RDB produced by version 7.4.11
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB age 135 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB memory usage when created 0.90 Mb
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * RDB is base AOF
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Done loading RDB, keys loaded: 0, keys expired: 0.
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from base file appendonly.aof.1.base.rdb: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from incr file appendonly.aof.1.incr.aof: 0.000 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * DB loaded from append only file: 0.001 seconds
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Opening AOF incr file appendonly.aof.1.incr.aof on server start
|
||||
[2Kpaperless-redis | 1:M 27 Sep 2026 11:36:39.939 * Ready to accept connections tcp
|
||||
paperless-webserver | Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount
|
||||
[2Kpaperless-webserver | Running migrations:
|
||||
[2Kpaperless-webserver | Applying contenttypes.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying auth.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying account.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying account.0002_email_max_length... OK
|
||||
[2Kpaperless-webserver | Applying account.0003_alter_emailaddress_create_unique_verified_email... OK
|
||||
[2Kpaperless-postgres | selecting dynamic shared memory implementation ... posix
|
||||
[2Kpaperless-postgres | selecting default "max_connections" ... 100
|
||||
[2Kpaperless-postgres | selecting default "shared_buffers" ... 128MB
|
||||
[2Kpaperless-postgres | selecting default time zone ... Europe/Budapest
|
||||
[2Kpaperless-postgres | creating configuration files ... ok
|
||||
[2Kpaperless-postgres | running bootstrap script ... ok
|
||||
[2Kpaperless-postgres | sh: locale: not found
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:29.987 CEST [46] WARNING: no usable system locales were found
|
||||
[2Kpaperless-postgres | performing post-bootstrap initialization ... ok
|
||||
[2Kpaperless-postgres | syncing data to disk ... ok
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | Success. You can now start the database server using:
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | pg_ctl -D /var/lib/postgresql/18/docker -l logfile start
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | initdb: warning: enabling "trust" authentication for local connections
|
||||
[2Kpaperless-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
|
||||
[2Kpaperless-postgres | waiting for server to start....2026-09-27 11:36:33.552 CEST [58] LOG: starting PostgreSQL 18.6 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:33.555 CEST [58] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:33.570 CEST [64] LOG: database system was shut down at 2026-09-27 11:36:33 CEST
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:33.577 CEST [58] LOG: database system is ready to accept connections
|
||||
[2Kpaperless-postgres | done
|
||||
[2Kpaperless-postgres | server started
|
||||
[2Kpaperless-postgres | CREATE DATABASE
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | waiting for server to shut down....2026-09-27 11:36:34.209 CEST [58] LOG: received fast shutdown request
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.213 CEST [58] LOG: aborting any active transactions
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.216 CEST [58] LOG: background worker "logical replication launcher" (PID 67) exited with exit code 1
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.221 CEST [62] LOG: shutting down
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.224 CEST [62] LOG: checkpoint starting: shutdown immediate
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.330 CEST [62] LOG: checkpoint complete: wrote 943 buffers (5.8%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.029 s, sync=0.060 s, total=0.110 s; sync files=303, longest=0.020 s, average=0.001 s; distance=4362 kB, estimate=4362 kB; lsn=0/1BA8868, redo lsn=0/1BA8868
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.356 CEST [58] LOG: database system is shut down
|
||||
[2Kpaperless-postgres | done
|
||||
[2Kpaperless-postgres | server stopped
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | PostgreSQL init process complete; ready for start up.
|
||||
[2Kpaperless-postgres |
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.450 CEST [1] LOG: starting PostgreSQL 18.6 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.450 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.450 CEST [1] LOG: listening on IPv6 address "::", port 5432
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.456 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.468 CEST [86] LOG: database system was shut down at 2026-09-27 11:36:34 CEST
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:34.475 CEST [1] LOG: database system is ready to accept connections
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:36.185 CEST [84] LOG: checkpoint starting: immediate force wait
|
||||
[2Kpaperless-postgres | 2026-09-27 11:36:36.214 CEST [84] LOG: checkpoint complete: wrote 1 buffers (0.0%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.008 s, sync=0.006 s, total=0.029 s; sync files=3, longest=0.003 s, average=0.002 s; distance=1 kB, estimate=1 kB; lsn=0/1BA8D70, redo lsn=0/1BA8D18
|
||||
[2Kpaperless-webserver | Applying account.0004_alter_emailaddress_drop_unique_email... OK
|
||||
[2Kpaperless-webserver | Applying account.0005_emailaddress_idx_upper_email... OK
|
||||
[2Kpaperless-webserver | Applying account.0006_emailaddress_lower... OK
|
||||
[2Kpaperless-webserver | Applying account.0007_emailaddress_idx_email... OK
|
||||
[2Kpaperless-webserver | Applying account.0008_emailaddress_unique_primary_email_fixup... OK
|
||||
[2Kpaperless-webserver | Applying account.0009_emailaddress_unique_primary_email... OK
|
||||
[2Kpaperless-webserver | Applying admin.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying admin.0002_logentry_remove_auto_add... OK
|
||||
[2Kpaperless-webserver | Applying admin.0003_logentry_add_action_flag_choices... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0002_auto_support_long_primary_keys... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0003_logentry_remote_addr... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0004_logentry_detailed_object_repr... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0005_logentry_additional_data_verbose_name... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0006_object_pk_index... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0007_object_pk_type... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0008_action_index... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0009_alter_logentry_additional_data... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0010_alter_logentry_timestamp... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0011_logentry_serialized_data... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0012_add_logentry_action_access... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0013_alter_logentry_timestamp... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0014_logentry_cid... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0015_alter_logentry_changes... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0016_logentry_remote_port... OK
|
||||
[2Kpaperless-webserver | Applying auditlog.0017_add_actor_email... OK
|
||||
[2Kpaperless-webserver | Applying contenttypes.0002_remove_content_type_name... OK
|
||||
[2Kpaperless-webserver | Applying auth.0002_alter_permission_name_max_length... OK
|
||||
[2Kpaperless-webserver | Applying auth.0003_alter_user_email_max_length... OK
|
||||
[2Kpaperless-webserver | Applying auth.0004_alter_user_username_opts... OK
|
||||
[2Kpaperless-webserver | Applying auth.0005_alter_user_last_login_null... OK
|
||||
[2Kpaperless-webserver | Applying auth.0006_require_contenttypes_0002... OK
|
||||
[2Kpaperless-webserver | Applying auth.0007_alter_validators_add_error_messages... OK
|
||||
[2Kpaperless-webserver | Applying auth.0008_alter_user_username_max_length... OK
|
||||
[2Kpaperless-webserver | Applying auth.0009_alter_user_last_name_max_length... OK
|
||||
[2Kpaperless-webserver | Applying auth.0010_alter_group_name_max_length... OK
|
||||
[2Kpaperless-webserver | Applying auth.0011_update_proxy_permissions... OK
|
||||
[2Kpaperless-webserver | Applying auth.0012_alter_user_first_name_max_length... OK
|
||||
[2Kpaperless-webserver | Applying authtoken.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying authtoken.0002_auto_20160226_1747... OK
|
||||
[2Kpaperless-webserver | Applying authtoken.0003_tokenproxy... OK
|
||||
[2Kpaperless-webserver | Applying authtoken.0004_alter_tokenproxy_options... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0002_add_task_name_args_kwargs... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0003_auto_20181106_1101... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0004_auto_20190516_0412... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0005_taskresult_worker... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0006_taskresult_date_created... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0007_remove_taskresult_hidden... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0008_chordcounter... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0009_groupresult... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0010_remove_duplicate_indices... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0011_taskresult_periodic_task_name... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0012_taskresult_date_started... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0013_taskresult_django_cele_periodi_1993cf_idx... OK
|
||||
[2Kpaperless-webserver | Applying django_celery_results.0014_alter_taskresult_status... OK
|
||||
[2Kpaperless-webserver | Applying documents.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying documents.0002_auto_20151226_1316... OK
|
||||
[2Kpaperless-webserver | Applying documents.0003_sender... OK
|
||||
[2Kpaperless-webserver | Applying documents.0004_auto_20160114_1844_squashed_0011_auto_20160303_1929... OK
|
||||
[2Kpaperless-webserver | Applying documents.0012_auto_20160305_0040...[init-tesseract-langs] Installing package tesseract-ocr-hun...
|
||||
[2Kpaperless-webserver | OK
|
||||
[2Kpaperless-webserver | Applying documents.0013_auto_20160325_2111... OK
|
||||
[2Kpaperless-webserver | Applying documents.0014_document_checksum... OK
|
||||
[2Kpaperless-webserver | Applying documents.0015_add_insensitive_to_match_squashed_0018_auto_20170715_1712... OK
|
||||
[2Kpaperless-webserver | Applying documents.0019_add_consumer_user... OK
|
||||
[2Kpaperless-webserver | Applying documents.0020_document_added... OK
|
||||
[2Kpaperless-webserver | Applying documents.0021_document_storage_type... OK
|
||||
[2Kpaperless-webserver | Applying documents.0022_auto_20181007_1420... OK
|
||||
[2Kpaperless-webserver | Applying documents.0023_document_current_filename... OK
|
||||
[2Kpaperless-webserver | Applying documents.1000_update_paperless_all... OK
|
||||
[2Kpaperless-webserver | Applying documents.1001_auto_20201109_1636... OK
|
||||
[2Kpaperless-webserver | Applying documents.1002_auto_20201111_1105... OK
|
||||
[2Kpaperless-webserver | Applying documents.1003_mime_types... OK
|
||||
[2Kpaperless-webserver | Applying documents.1004_sanity_check_schedule... OK
|
||||
[2Kpaperless-webserver | Applying documents.1005_checksums... OK
|
||||
[2Kpaperless-webserver | Applying documents.1006_auto_20201208_2209_squashed_1011_auto_20210101_2340... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0001_initial_squashed_0009_mailrule_assign_tags... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0010_auto_20220311_1602... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0011_remove_mailrule_assign_tag_squashed_0024_alter_mailrule_name_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1012_fix_archive_files... OK
|
||||
[2Kpaperless-webserver | Applying documents.1013_migrate_tag_colour... OK
|
||||
[2Kpaperless-webserver | Applying documents.1014_auto_20210228_1614... OK
|
||||
[2Kpaperless-webserver | Applying documents.1015_remove_null_characters... OK
|
||||
[2Kpaperless-webserver | Applying documents.1016_auto_20210317_1351_squashed_1020_merge_20220518_1839... OK
|
||||
[2Kpaperless-webserver | Applying documents.1021_webp_thumbnail_conversion... OK
|
||||
[2Kpaperless-webserver | Applying documents.1022_paperlesstask_squashed_1036_alter_savedviewfilterrule_rule_type... OK
|
||||
[2Kpaperless-webserver | Applying documents.1037_webp_encrypted_thumbnail_conversion...[init-tesseract-langs] Installed tesseract-ocr-hun
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Additional packages installed
|
||||
[2Kpaperless-webserver | OK
|
||||
[2Kpaperless-webserver | Applying documents.1038_sharelink... OK
|
||||
[2Kpaperless-webserver | Applying documents.1039_consumptiontemplate... OK
|
||||
[2Kpaperless-webserver | Applying documents.1040_customfield_customfieldinstance_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1041_alter_consumptiontemplate_sources... OK
|
||||
[2Kpaperless-webserver | Applying documents.1042_consumptiontemplate_assign_custom_fields_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1043_alter_savedviewfilterrule_rule_type... OK
|
||||
[2Kpaperless-webserver | Applying documents.1044_workflow_workflowaction_workflowtrigger_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1045_alter_customfieldinstance_value_monetary_squashed_1049_document_deleted_at_document_restored_at... OK
|
||||
[2Kpaperless-webserver | Applying documents.1050_customfield_extra_data_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1051_alter_correspondent_owner_alter_document_owner_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1052_document_transaction_id... OK
|
||||
[2Kpaperless-webserver | Applying documents.1053_document_page_count... OK
|
||||
[2Kpaperless-webserver | Applying documents.1054_customfieldinstance_value_monetary_amount_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1055_alter_storagepath_path... OK
|
||||
[2Kpaperless-webserver | Applying documents.1056_customfieldinstance_deleted_at_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1057_paperlesstask_owner... OK
|
||||
[2Kpaperless-webserver | Applying documents.1058_workflowtrigger_schedule_date_custom_field_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1059_workflowactionemail_workflowactionwebhook_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1060_alter_customfieldinstance_value_select... OK
|
||||
[2Kpaperless-webserver | Applying documents.1061_workflowactionwebhook_as_json... OK
|
||||
[2Kpaperless-webserver | Applying documents.1062_alter_savedviewfilterrule_rule_type... OK
|
||||
[2Kpaperless-webserver | Applying documents.1063_paperlesstask_type_alter_paperlesstask_task_name_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1064_delete_log... OK
|
||||
[2Kpaperless-webserver | Applying documents.1065_workflowaction_assign_custom_fields_values... OK
|
||||
[2Kpaperless-webserver | Applying documents.1066_alter_workflowtrigger_schedule_offset_days... OK
|
||||
[2Kpaperless-webserver | Applying documents.1067_alter_document_created... OK
|
||||
[2Kpaperless-webserver | Applying documents.1068_alter_document_created... OK
|
||||
[2Kpaperless-webserver | Applying documents.1069_workflowtrigger_filter_has_storage_path_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1070_customfieldinstance_value_long_text_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1071_tag_tn_ancestors_count_tag_tn_ancestors_pks_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1072_workflowtrigger_filter_custom_field_query_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1073_migrate_workflow_title_jinja... OK
|
||||
[2Kpaperless-webserver | Applying documents.1074_workflowrun_deleted_at_workflowrun_restored_at_and_more... OK
|
||||
[2Kpaperless-webserver | Applying documents.1075_workflowaction_order... OK
|
||||
[2Kpaperless-webserver | Applying guardian.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying guardian.0002_generic_permissions_index... OK
|
||||
[2Kpaperless-webserver | Applying guardian.0003_remove_groupobjectpermission_guardian_gr_content_ae6aec_idx_and_more... OK
|
||||
[2Kpaperless-webserver | Applying mfa.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying mfa.0002_authenticator_timestamps... OK
|
||||
[2Kpaperless-webserver | Applying mfa.0003_authenticator_type_uniq... OK
|
||||
[2Kpaperless-webserver | Applying paperless.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying paperless.0002_applicationconfiguration_app_logo_and_more... OK
|
||||
[2Kpaperless-webserver | Applying paperless.0003_alter_applicationconfiguration_max_image_pixels... OK
|
||||
[2Kpaperless-webserver | Applying paperless.0004_applicationconfiguration_barcode_asn_prefix_and_more... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0025_alter_mailaccount_owner_alter_mailrule_owner_and_more... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0026_mailrule_enabled... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0027_mailaccount_expiration_mailaccount_account_type_and_more... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0028_alter_mailaccount_password_and_more... OK
|
||||
[2Kpaperless-webserver | Applying paperless_mail.0029_mailrule_pdf_layout... OK
|
||||
[2Kpaperless-webserver | Applying sessions.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0001_initial... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0002_token_max_lengths... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0003_extra_data_default_dict... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0004_app_provider_id_settings... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0005_socialtoken_nullable_app... OK
|
||||
[2Kpaperless-webserver | Applying socialaccount.0006_alter_socialaccount_extra_data... OK
|
||||
[2Kpaperless-webserver | [init-superuser] Creating superuser...
|
||||
[2Kpaperless-webserver | [init-index] No index version file found
|
||||
[2Kpaperless-webserver | [init-index] Search index out of date. Updating...
|
||||
[2Kpaperless-webserver | Created superuser "admin" with provided password.
|
||||
[2Kpaperless-webserver | [init-superuser] Superuser creation done
|
||||
[2Kpaperless-webserver | [init-checks] Running Django checks
|
||||
[2Kpaperless-webserver | System check identified no issues (0 silenced).
|
||||
[2Kpaperless-webserver | [custom-init] /custom-cont-init.d doesn't exist, nothing to do
|
||||
[2Kpaperless-webserver | [init-complete] paperless-ngx docker container init completed in 35 seconds
|
||||
[2Kpaperless-webserver | [init-complete] Starting services
|
||||
[2Kpaperless-webserver | [svc-flower] Checking if we should start flower...
|
||||
[2Kpaperless-webserver | [svc-flower] Not starting flower
|
||||
[2Kpaperless-webserver | [INFO] Starting granian (main PID: 267)
|
||||
[2Kpaperless-webserver | [INFO] Listening at: http://:::8000
|
||||
[2Kpaperless-webserver | [INFO] Spawning worker-1 with PID: 290
|
||||
[2Kpaperless-webserver | celery beat v5.5.3 (immunity) is starting.
|
||||
[2Kpaperless-webserver | [2026-09-27 11:35:17,211] [INFO] [paperless.management.consumer] Polling directory for changes: /usr/src/paperless/consume
|
||||
[2Kpaperless-webserver | [2026-09-27 11:35:17,413] [INFO] [paperless.asgi] [init] Paperless-ngx version: v2.20.15
|
||||
[2Kpaperless-webserver | __ - ... __ - _
|
||||
[2Kpaperless-webserver | LocalTime -> 2026-09-27 11:35:18
|
||||
[2Kpaperless-webserver | Configuration ->
|
||||
[2Kpaperless-webserver | . broker -> redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | . loader -> celery.loaders.app.AppLoader
|
||||
[2Kpaperless-webserver | . scheduler -> celery.beat.PersistentScheduler
|
||||
[2Kpaperless-webserver | . db -> /usr/src/paperless/data/celerybeat-schedule.db
|
||||
[2Kpaperless-webserver | . logfile -> [stderr]@%INFO
|
||||
[2Kpaperless-webserver | . maxinterval -> 5.00 minutes (300s)
|
||||
[2Kpaperless-webserver | [2026-09-27 11:35:18,163] [INFO] [celery.beat] beat: Starting...
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | -------------- celery@3cca2aaddffe v5.5.3 (immunity)
|
||||
[2Kpaperless-webserver | --- ***** -----
|
||||
[2Kpaperless-webserver | -- ******* ---- Linux-7.0.2-6-pve-x86_64-with-glibc2.41 2026-09-27 11:35:18
|
||||
[2Kpaperless-webserver | - *** --- * ---
|
||||
[2Kpaperless-webserver | - ** ---------- [config]
|
||||
[2Kpaperless-webserver | - ** ---------- .> app: paperless:0x7337f6bde330
|
||||
[2Kpaperless-webserver | - ** ---------- .> transport: redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | - ** ---------- .> results:
|
||||
[2Kpaperless-webserver | - *** --- * --- .> concurrency: 1 (prefork)
|
||||
[2Kpaperless-webserver | -- ******* ---- .> task events: ON
|
||||
[2Kpaperless-webserver | --- ***** -----
|
||||
[2Kpaperless-webserver | -------------- [queues]
|
||||
[2Kpaperless-webserver | .> celery exchange=celery(direct) key=celery
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | [tasks]
|
||||
[2Kpaperless-webserver | . documents.bulk_edit.delete
|
||||
[2Kpaperless-webserver | . documents.signals.handlers.process_cf_select_update
|
||||
[2Kpaperless-webserver | . documents.tasks.bulk_update_documents
|
||||
[2Kpaperless-webserver | . documents.tasks.check_scheduled_workflows
|
||||
[2Kpaperless-webserver | . documents.tasks.consume_file
|
||||
[2Kpaperless-webserver | . documents.tasks.empty_trash
|
||||
[2Kpaperless-webserver | . documents.tasks.index_optimize
|
||||
[2Kpaperless-webserver | . documents.tasks.sanity_check
|
||||
[2Kpaperless-webserver | . documents.tasks.train_classifier
|
||||
[2Kpaperless-webserver | . documents.tasks.update_document_content_maybe_archive_file
|
||||
[2Kpaperless-webserver | . documents.workflows.webhooks.send_webhook
|
||||
[2Kpaperless-webserver | . paperless_mail.mail.apply_mail_action
|
||||
[2Kpaperless-webserver | . paperless_mail.mail.error_callback
|
||||
[2Kpaperless-webserver | . paperless_mail.tasks.process_mail_accounts
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | [2026-09-27 11:35:18,443] [INFO] [celery.worker.consumer.connection] Connected to redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | [2026-09-27 11:35:18,464] [INFO] [celery.apps.worker] celery@3cca2aaddffe ready.
|
||||
[2Kpaperless-webserver | [INFO] Shutting down granian
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | worker: Warm shutdown (MainProcess)
|
||||
[2Kpaperless-webserver | [init-start] paperless-ngx docker container starting...
|
||||
[2Kpaperless-webserver | [init-start] paperless-ngx docker container starting init as root
|
||||
[2Kpaperless-webserver | [env-init] Checking for environment from files
|
||||
[2Kpaperless-webserver | [env-init] No *_FILE environment found
|
||||
[2Kpaperless-webserver | [init-redis-wait] Waiting for Redis to report ready
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Checking if additional teseract languages needed
|
||||
[2Kpaperless-webserver | Installing languages...
|
||||
[2Kpaperless-webserver | [init-db-wait] Waiting for PostgreSQL to start...
|
||||
[2Kpaperless-webserver | [init-user] No UID changes for paperless
|
||||
[2Kpaperless-webserver | [init-user] No GID changes for paperless
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Package tesseract-ocr-eng already installed!
|
||||
[2Kpaperless-webserver | [init-folders] Running with root privileges, adjusting directories and permissions
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Package tesseract-ocr-hun already installed!
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Package tesseract-ocr-deu already installed!
|
||||
[2Kpaperless-webserver | [init-tesseract-langs] Additional packages installed
|
||||
[2Kpaperless-webserver | paperless-postgres:5432 - accepting connections
|
||||
[2Kpaperless-webserver | [init-db-wait] Connected to PostgreSQL
|
||||
[2Kpaperless-webserver | [init-db-wait] Database is ready
|
||||
[2Kpaperless-webserver | [init-migrations] Apply database migrations...
|
||||
[2Kpaperless-webserver | Waiting for Redis...
|
||||
[2Kpaperless-webserver | Connected to Redis broker.
|
||||
[2Kpaperless-webserver | [init-redis-wait] Redis ready
|
||||
[2Kpaperless-webserver | Operations to perform:
|
||||
[2Kpaperless-webserver | Apply all migrations: account, admin, auditlog, auth, authtoken, contenttypes, django_celery_results, documents, guardian, mfa, paperless, paperless_mail, sessions, socialaccount
|
||||
[2Kpaperless-webserver | Running migrations:
|
||||
[2Kpaperless-webserver | No migrations to apply.
|
||||
[2Kpaperless-webserver | [init-superuser] Creating superuser...
|
||||
[2Kpaperless-webserver | Did not create superuser, a user admin already exists
|
||||
[2Kpaperless-webserver | [init-superuser] Superuser creation done
|
||||
[2Kpaperless-webserver | [init-checks] Running Django checks
|
||||
[2Kpaperless-webserver | System check identified no issues (0 silenced).
|
||||
[2Kpaperless-webserver | [custom-init] /custom-cont-init.d doesn't exist, nothing to do
|
||||
[2Kpaperless-webserver | [init-complete] paperless-ngx docker container init completed in 20 seconds
|
||||
[2Kpaperless-webserver | [init-complete] Starting services
|
||||
[2Kpaperless-webserver | [svc-flower] Checking if we should start flower...
|
||||
[2Kpaperless-webserver | [svc-flower] Not starting flower
|
||||
[2Kpaperless-webserver | [INFO] Starting granian (main PID: 181)
|
||||
[2Kpaperless-webserver | [INFO] Listening at: http://:::8000
|
||||
[2Kpaperless-webserver | [INFO] Spawning worker-1 with PID: 200
|
||||
[2Kpaperless-webserver | celery beat v5.5.3 (immunity) is starting.
|
||||
[2Kpaperless-webserver | [2026-09-27 11:37:19,186] [INFO] [paperless.asgi] [init] Paperless-ngx version: v2.20.15
|
||||
[2Kpaperless-webserver | [2026-09-27 11:37:19,918] [INFO] [paperless.management.consumer] Polling directory for changes: /usr/src/paperless/consume
|
||||
[2Kpaperless-webserver | __ - ... __ - _
|
||||
[2Kpaperless-webserver | LocalTime -> 2026-09-27 11:37:20
|
||||
[2Kpaperless-webserver | Configuration ->
|
||||
[2Kpaperless-webserver | . broker -> redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | . loader -> celery.loaders.app.AppLoader
|
||||
[2Kpaperless-webserver | . scheduler -> celery.beat.PersistentScheduler
|
||||
[2Kpaperless-webserver | . db -> /usr/src/paperless/data/celerybeat-schedule.db
|
||||
[2Kpaperless-webserver | . logfile -> [stderr]@%INFO
|
||||
[2Kpaperless-webserver | . maxinterval -> 5.00 minutes (300s)
|
||||
[2Kpaperless-webserver | [2026-09-27 11:37:20,475] [INFO] [celery.beat] beat: Starting...
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | -------------- celery@3cca2aaddffe v5.5.3 (immunity)
|
||||
[2Kpaperless-webserver | --- ***** -----
|
||||
[2Kpaperless-webserver | -- ******* ---- Linux-7.0.2-6-pve-x86_64-with-glibc2.41 2026-09-27 11:37:20
|
||||
[2Kpaperless-webserver | - *** --- * ---
|
||||
[2Kpaperless-webserver | - ** ---------- [config]
|
||||
[2Kpaperless-webserver | - ** ---------- .> app: paperless:0x7e717854f800
|
||||
[2Kpaperless-webserver | - ** ---------- .> transport: redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | - ** ---------- .> results:
|
||||
[2Kpaperless-webserver | - *** --- * --- .> concurrency: 1 (prefork)
|
||||
[2Kpaperless-webserver | -- ******* ---- .> task events: ON
|
||||
[2Kpaperless-webserver | --- ***** -----
|
||||
[2Kpaperless-webserver | -------------- [queues]
|
||||
[2Kpaperless-webserver | .> celery exchange=celery(direct) key=celery
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | [tasks]
|
||||
[2Kpaperless-webserver | . documents.bulk_edit.delete
|
||||
[2Kpaperless-webserver | . documents.signals.handlers.process_cf_select_update
|
||||
[2Kpaperless-webserver | . documents.tasks.bulk_update_documents
|
||||
[2Kpaperless-webserver | . documents.tasks.check_scheduled_workflows
|
||||
[2Kpaperless-webserver | . documents.tasks.consume_file
|
||||
[2Kpaperless-webserver | . documents.tasks.empty_trash
|
||||
[2Kpaperless-webserver | . documents.tasks.index_optimize
|
||||
[2Kpaperless-webserver | . documents.tasks.sanity_check
|
||||
[2Kpaperless-webserver | . documents.tasks.train_classifier
|
||||
[2Kpaperless-webserver | . documents.tasks.update_document_content_maybe_archive_file
|
||||
[2Kpaperless-webserver | . documents.workflows.webhooks.send_webhook
|
||||
[2Kpaperless-webserver | . paperless_mail.mail.apply_mail_action
|
||||
[2Kpaperless-webserver | . paperless_mail.mail.error_callback
|
||||
[2Kpaperless-webserver | . paperless_mail.tasks.process_mail_accounts
|
||||
[2Kpaperless-webserver |
|
||||
[2Kpaperless-webserver | [2026-09-27 11:37:21,038] [INFO] [celery.worker.consumer.connection] Connected to redis://paperless-redis:6379//
|
||||
[2Kpaperless-webserver | [2026-09-27 11:37:21,060] [INFO] [celery.apps.worker] celery@3cca2aaddffe ready.
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"paperless-postgres": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"paperless-redis": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"paperless-webserver": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-paperless-ngx",
|
||||
"app": "paperless-ngx",
|
||||
"note": "night 2026-09-23 within-a-major move: paperless-postgres=postgres:18-alpine",
|
||||
"from": {
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15",
|
||||
"paperless-postgres": "postgres:16-alpine",
|
||||
"paperless-redis": "redis:7-alpine"
|
||||
},
|
||||
"to": {
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15",
|
||||
"paperless-postgres": "postgres:18-alpine",
|
||||
"paperless-redis": "redis:7-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kpaperless-webserver | [init-migrations] Apply database migrations...",
|
||||
"abort": "refuses",
|
||||
"abort_detail": "less-postgres | The files belonging to this database system will be owned by user \"postgres\".\n\u001b[2Kpaperless-postgres | This user must also own the server process.\n\u001b[2Kpaperless-postgres | \n\u001b[2Kpaperless-postgres | initdb: error: directory \"/var/lib/postgresql/data\" exists but is not empty\n\u001b[2Kpaperless-postgres | initdb: hint: If you want to create a new database system, either remove or empty the directory \"/var/lib/postgresql/data\" or run initdb with an argument other than \"/var/lib/postgresql/data\".\n\u001b[2Kpaperless-postgres | The database cluster will be initialized with locale \"en_US.utf8\".\n\u001b[2Kpaperless-postgres | The default database encoding has accordingly been set to \"UTF8\".\n\u001b[2Kpaperless-postgres | The default text search configuration will be set to \"english\".\n\u001b[2Kpaperless-postgres | \n\u001b[2Kpaperless-postgres | Data page checksums are disabled.\n\u001b[2Kpaperless-postgres |",
|
||||
"engine_state_after": {
|
||||
"paperless-postgres": {
|
||||
"image": "postgres:18-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "18",
|
||||
"probe_rc": 0
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 606.9,
|
||||
"requested_s": 600,
|
||||
"requests": 11832,
|
||||
"codes": {
|
||||
"302": 11832
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"paperless-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 193302528,
|
||||
"peak_pct": 0.72,
|
||||
"anon_peak_sampled": 10256384,
|
||||
"anon_peak_pct": 0.038,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"paperless-redis": {
|
||||
"limit": 134217728,
|
||||
"peak": 7303168,
|
||||
"peak_pct": 0.054,
|
||||
"anon_peak_sampled": 3137536,
|
||||
"anon_peak_pct": 0.023,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"paperless-webserver": {
|
||||
"limit": 1342177280,
|
||||
"peak": 660705280,
|
||||
"peak_pct": 0.492,
|
||||
"anon_peak_sampled": 537432064,
|
||||
"anon_peak_pct": 0.4,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 31.5,
|
||||
"measured_at": "2026-09-27T09:50:50Z",
|
||||
"evidence": "evidence/MV-paperless-ngx",
|
||||
"scratch_cleared": [],
|
||||
"engine_conversion": {
|
||||
"service": "paperless-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 18,
|
||||
"dump_s": 0.63,
|
||||
"dump_bytes": 246453,
|
||||
"new_engine_ready_s": 6.4,
|
||||
"load_s": 2.59,
|
||||
"dropped": [
|
||||
"paperless"
|
||||
],
|
||||
"skipped_create_role": [
|
||||
"CREATE ROLE paperless;"
|
||||
],
|
||||
"result": "converted",
|
||||
"check_equal": true,
|
||||
"pg_version": "18",
|
||||
"tables": 72,
|
||||
"convert_s": 35.4
|
||||
},
|
||||
"files_changed": [],
|
||||
"total_s": 1024.4
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"app": "paperless-ngx",
|
||||
"venue": "box 9202 (drill catalog, controller 0.275.0-rc1), the product's guarded Update",
|
||||
"from": {
|
||||
"paperless-postgres": "postgres:16-alpine",
|
||||
"paperless-redis": "redis:7-alpine",
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15"
|
||||
},
|
||||
"to": {
|
||||
"paperless-postgres": "postgres:18-alpine",
|
||||
"paperless-redis": "redis:7-alpine",
|
||||
"paperless-webserver": "ghcr.io/paperless-ngx/paperless-ngx:2.20.15"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"engine_conversion": {
|
||||
"service": "paperless-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 18,
|
||||
"result": "converted",
|
||||
"controller_line": "update paperless-ngx: CONVERTED 16 \u2192 18 in 10.607s \u2014 the check is equal (2 database(s), 72 table(s), 812 row(s)), PG_VERSION 18"
|
||||
},
|
||||
"duration_s": 64.7,
|
||||
"measured_at": "2026-09-27T09:44:10Z",
|
||||
"evidence": "felhom.eu/documentation/audits/version-travel-2026-09-26/B/apps/paperless-ngx/box/move.txt"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
before: pinned={'paperless-postgres': 'postgres:16-alpine', 'paperless-redis': 'redis:7-alpine', 'paperless-webserver': 'ghcr.io/paperless-ngx/paperless-ngx:2.20.15'} PG_VERSION=16
|
||||
drill: 48f45df DRILL paperless-ngx: paperless-postgres postgres:16-alpine -> postgres:18-alpine with the engine_conversion mark (box proof)
|
||||
phase +0.0s safety-dump | err=None
|
||||
phase +3.1s pulling | err=None
|
||||
phase +4.1s copying | err=None
|
||||
phase +12.3s converting | err=None
|
||||
phase +22.6s starting | err=None
|
||||
phase +33.9s verifying | err=None
|
||||
phase +64.6s done | err=None
|
||||
paperless-webserver: readback of the seeded account found=True
|
||||
2026/09/27 09:44:11 update.go:536: [INFO] [stacks] update paperless-ngx: accepted — guarded update started
|
||||
2026/09/27 09:44:11 update.go:1365: [INFO] [stacks] update paperless-ngx: phase checking
|
||||
2026/09/27 09:44:11 update.go:786: [INFO] [stacks] update paperless-ngx: ladder — the last step (1 of 1) — the catalog's current definition
|
||||
2026/09/27 09:44:11 update.go:800: [INFO] [stacks] update paperless-ngx: this step CONVERTS paperless-postgres PostgreSQL 16 → 18 (the ladder entry's mark); database volume paperless-ngx_paperless_postgres_data
|
||||
2026/09/27 09:44:11 update.go:814: [INFO] [stacks] update paperless-ngx: precondition met — Tier 2 (second drive) copy from 2026-09-27T00:30:00Z (9h14m0s old, limit 24h0m0s)
|
||||
2026/09/27 09:44:11 update.go:1365: [INFO] [stacks] update paperless-ngx: phase safety-dump
|
||||
2026/09/27 09:44:12 update.go:846: [INFO] [stacks] update paperless-ngx: safety dump done (1 file(s)) [/mnt/felhom-drives/scratch_hdd/userdata/paperless-ngx/backups/primary/paperless-ngx/db-dumps/pre-restore-20260927T094411Z-paperless-ngx-postgres.sql]
|
||||
2026/09/27 09:44:13 undo.go:287: [INFO] [stacks] update paperless-ngx: the undo copy will hold 3 named volume(s), 72.2 MiB
|
||||
2026/09/27 09:44:13 pgconvert.go:340: [INFO] [stacks] update paperless-ngx: conversion space — database volume paperless-ngx_paperless_postgres_data is 67 MB; the dump needs up to 84 MB + the 2 GB floor; 27.7 GB free beside the stack dir
|
||||
2026/09/27 09:44:13 update.go:1365: [INFO] [stacks] update paperless-ngx: phase pinning
|
||||
2026/09/27 09:44:13 pin.go:373: [INFO] [stacks] update paperless-ngx: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/paperless-ngx/docker-compose.yml (paperless-postgres=postgres:18-alpine, paperless-redis=redis:7-alpine, paperless-webserver=ghcr.io/paperless-ngx/paperless-ngx:2.20.15)
|
||||
2026/09/27 09:44:13 update.go:1365: [INFO] [stacks] update paperless-ngx: phase pulling
|
||||
2026/09/27 09:44:15 update.go:1365: [INFO] [stacks] update paperless-ngx: phase copying
|
||||
2026/09/27 09:44:21 update.go:1365: [INFO] [stacks] update paperless-ngx: phase copying
|
||||
2026/09/27 09:44:22 undo.go:437: [INFO] [stacks] update paperless-ngx: copied paperless-ngx_paperless_data → paperless-ngx_paperless_data.pre-update-20260927T094421Z in 477ms
|
||||
2026/09/27 09:44:22 update.go:1365: [INFO] [stacks] update paperless-ngx: phase copying
|
||||
2026/09/27 09:44:23 undo.go:437: [INFO] [stacks] update paperless-ngx: copied paperless-ngx_paperless_postgres_data → paperless-ngx_paperless_postgres_data.pre-update-20260927T094421Z in 954ms
|
||||
2026/09/27 09:44:23 update.go:1365: [INFO] [stacks] update paperless-ngx: phase copying
|
||||
2026/09/27 09:44:23 undo.go:437: [INFO] [stacks] update paperless-ngx: copied paperless-ngx_paperless_redis_data → paperless-ngx_paperless_redis_data.pre-update-20260927T094421Z in 454ms
|
||||
2026/09/27 09:44:23 update.go:1365: [INFO] [stacks] update paperless-ngx: phase converting
|
||||
2026/09/27 09:44:23 pgconvert.go:423: [INFO] [stacks] update paperless-ngx: CONVERTING paperless-postgres PostgreSQL 16 → 18 (volume paperless-ngx_paperless_postgres_data, kept copy paperless-ngx_paperless_postgres_data.pre-update-20260927T094421Z)
|
||||
2026/09/27 09:44:27 pgconvert.go:468: [INFO] [stacks] update paperless-ngx: pg_dumpall from 16 done in 609ms — 335 kB, completion line present; before: 2 database(s), 72 table(s), 812 row(s)
|
||||
2026/09/27 09:44:28 update.go:1365: [INFO] [stacks] update paperless-ngx: phase converting
|
||||
2026/09/27 09:44:28 pgconvert.go:484: [INFO] [stacks] update paperless-ngx: database volume paperless-ngx_paperless_postgres_data emptied (its copy paperless-ngx_paperless_postgres_data.pre-update-20260927T094421Z holds the old datadir, marker checked twice)
|
||||
2026/09/27 09:44:33 pgconvert.go:513: [INFO] [stacks] update paperless-ngx: loaded into 18 in 2.318s (dropped the entrypoint's empty database(s) [paperless]; skipped CREATE ROLE for [paperless])
|
||||
2026/09/27 09:44:34 pgconvert.go:529: [INFO] [stacks] update paperless-ngx: CONVERTED 16 → 18 in 10.607s — the check is equal (2 database(s), 72 table(s), 812 row(s)), PG_VERSION 18
|
||||
2026/09/27 09:44:34 update.go:1365: [INFO] [stacks] update paperless-ngx: phase starting
|
||||
2026/09/27 09:44:45 update.go:1365: [INFO] [stacks] update paperless-ngx: phase verifying
|
||||
2026/09/27 09:45:15 update.go:997: [INFO] [stacks] update paperless-ngx: healthy after 30s (the app's health check passed)
|
||||
2026/09/27 09:45:15 update.go:1015: [INFO] [stacks] update paperless-ngx: KEEPING the pre-conversion datadir copy paperless-ngx_paperless_postgres_data.pre-update-20260927T094421Z (PostgreSQL 16) until a backup of the converted app is proven
|
||||
2026/09/27 09:45:15 update.go:1033: [INFO] [stacks] update paperless-ngx: DONE in 1m4s
|
||||
|
||||
RESULT final_phase=done PG_VERSION=18 seed_after=True verdict=proven
|
||||
@@ -0,0 +1,5 @@
|
||||
deploy/reuse paperless-ngx: True
|
||||
paperless-webserver: createsuperuser :: Superuser created successfully.
|
||||
paperless-webserver: seeded superuser drill411bd8
|
||||
paperless-webserver: readback of the seeded account found=True
|
||||
C1 seed reads back BEFORE: True
|
||||
@@ -0,0 +1,153 @@
|
||||
[09:50:59] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[09:50:59] MV-tandoor: deploying tandoor at FROM {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'}
|
||||
[09:52:53] FROM settled=True in 61.9s :: {"tandoor": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "tandoor-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:52:53] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[09:53:03] tandoor: createsuperuser :: Running django-vite in production mode (no HMR) Superuser created successfully.
|
||||
[09:53:04] tandoor: seeded superuser drill2e9797
|
||||
[09:53:07] tandoor: readback of the seeded account found=True
|
||||
[09:53:07] C1 (seed reads back BEFORE): True
|
||||
[09:53:07] MV-tandoor: PostgreSQL major move {'service': 'tandoor-postgres', 'engine': 'postgres', 'from': 16, 'to': 17} — converting on the bench before the swap
|
||||
[09:53:31] CONVERTED tandoor-postgres PostgreSQL 16 -> 17 in 23.6s (dump 0.71s / 338574 B, load 3.04s, check equal over 100 tables)
|
||||
[09:53:31] MV-tandoor: swapping to TO {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:17-alpine'}
|
||||
[09:53:35] TO up -d rc=0
|
||||
[09:54:06] TO settled=True in 31.0s :: {"tandoor": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "tandoor-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:54:06] engine state tandoor-postgres: 17
|
||||
[09:54:07] migration lines observed: 4
|
||||
[09:54:09] tandoor: readback of the seeded account found=True
|
||||
[09:54:09] RESULT (seed reads back AFTER): True
|
||||
[09:54:10] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:80
|
||||
[09:54:25] + 15s tandoor=951M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=295
|
||||
[09:54:40] + 30s tandoor=951M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=591
|
||||
[09:54:55] + 45s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=887
|
||||
[09:55:10] + 60s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=1182
|
||||
[09:55:25] + 76s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=1478
|
||||
[09:55:40] + 91s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=1773
|
||||
[09:55:56] + 106s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2068
|
||||
[09:56:11] + 121s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=2363
|
||||
[09:56:26] + 136s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2656
|
||||
[09:56:41] + 151s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2952
|
||||
[09:56:56] + 166s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3248
|
||||
[09:57:11] + 182s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3544
|
||||
[09:57:26] + 197s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3840
|
||||
[09:57:42] + 212s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=4136
|
||||
[09:57:57] + 227s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=4428
|
||||
[09:58:12] + 242s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=4724
|
||||
[09:58:27] + 257s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=5020
|
||||
[09:58:42] + 272s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=159M/256M peak=183M kills=0 rs=0 reqs=5316
|
||||
[09:58:57] + 288s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=160M/256M peak=183M kills=0 rs=0 reqs=5612
|
||||
[09:59:12] + 303s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=161M/256M peak=183M kills=0 rs=0 reqs=5908
|
||||
[09:59:27] + 318s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=161M/256M peak=183M kills=0 rs=0 reqs=6202
|
||||
[09:59:43] + 333s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=162M/256M peak=183M kills=0 rs=0 reqs=6497
|
||||
[09:59:58] + 348s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=163M/256M peak=183M kills=0 rs=0 reqs=6793
|
||||
[10:00:13] + 363s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7089
|
||||
[10:00:28] + 378s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7385
|
||||
[10:00:43] + 394s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=7681
|
||||
[10:00:58] + 409s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7975
|
||||
[10:01:13] + 424s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=8270
|
||||
[10:01:29] + 439s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=8566
|
||||
[10:01:44] + 454s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=8862
|
||||
[10:01:59] + 469s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=9158
|
||||
[10:02:14] + 484s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=9454
|
||||
[10:02:29] + 499s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=9750
|
||||
[10:02:44] + 514s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10046
|
||||
[10:02:59] + 530s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=10342
|
||||
[10:03:14] + 545s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10636
|
||||
[10:03:30] + 560s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10930
|
||||
[10:03:45] + 575s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11226
|
||||
[10:04:00] + 590s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11522
|
||||
[10:04:15] + 605s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11818
|
||||
[10:04:15] memory watch: killed=False tight=[] requests=11818 codes={'302': 11818}
|
||||
[10:04:15] MV-tandoor: ABORT — putting the FROM images back
|
||||
[10:07:25] ABORT: the app did NOT come back (rc=1, 184.7s)
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-tandoor",
|
||||
"app": "tandoor",
|
||||
"note": "night 2026-09-23 within-a-major move: tandoor-postgres=postgres:17-alpine",
|
||||
"from": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:16-alpine"
|
||||
},
|
||||
"to": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:17-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktandoor | Migrating database",
|
||||
"abort": "refuses",
|
||||
"abort_detail": "rsion 16.15.\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] FATAL: database files are incompatible with server\n\u001b[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] FATAL: database files are incompatible with server\n\u001b[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.",
|
||||
"engine_state_after": {
|
||||
"tandoor-postgres": {
|
||||
"image": "postgres:17-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "17",
|
||||
"probe_rc": 0
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 605.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11818,
|
||||
"codes": {
|
||||
"302": 11818
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"tandoor": {
|
||||
"limit": 1073741824,
|
||||
"peak": 1049731072,
|
||||
"peak_pct": 0.978,
|
||||
"anon_peak_sampled": 845176832,
|
||||
"anon_peak_pct": 0.787,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"tandoor-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 192729088,
|
||||
"peak_pct": 0.718,
|
||||
"anon_peak_sampled": 13815808,
|
||||
"anon_peak_pct": 0.051,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 31.0,
|
||||
"measured_at": "2026-09-27T10:07:25Z",
|
||||
"evidence": "evidence/MV-tandoor",
|
||||
"scratch_cleared": [],
|
||||
"engine_conversion": {
|
||||
"service": "tandoor-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 17,
|
||||
"dump_s": 0.71,
|
||||
"dump_bytes": 338574,
|
||||
"new_engine_ready_s": 2.2,
|
||||
"load_s": 3.04,
|
||||
"dropped": [
|
||||
"tandoor"
|
||||
],
|
||||
"skipped_create_role": [
|
||||
"CREATE ROLE tandoor;"
|
||||
],
|
||||
"result": "converted",
|
||||
"check_equal": true,
|
||||
"pg_version": "17",
|
||||
"tables": 100,
|
||||
"convert_s": 23.6
|
||||
},
|
||||
"files_changed": [],
|
||||
"total_s": 985.7
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:21.604 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:21.604 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:23.533 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:23.533 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:27.053 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:27.053 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:33.779 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:33.779 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:46.906 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:46.906 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:05:12.828 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:05:12.828 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"tandoor": {
|
||||
"status": "created",
|
||||
"health": null,
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"tandoor-postgres": {
|
||||
"status": "restarting",
|
||||
"health": "unhealthy",
|
||||
"restarts": 0,
|
||||
"exit": 1
|
||||
}
|
||||
}
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:18.773 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:18.773 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:19.223 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:19.223 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:19.775 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:19.775 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:20.491 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:20.491 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:21.604 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:21.604 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:23.533 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:23.533 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:27.053 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:27.053 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:33.779 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:33.779 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:46.906 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:04:46.906 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:05:12.828 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:05:12.828 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization
|
||||
[2Ktandoor-postgres |
|
||||
[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] FATAL: database files are incompatible with server
|
||||
[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
db:postgres owner=tandoor enc=UTF8 coll=en_US.utf8
|
||||
db:tandoor owner=tandoor enc=UTF8 coll=en_US.utf8
|
||||
ext:tandoor:pg_trgm
|
||||
ext:tandoor:plpgsql
|
||||
ext:tandoor:unaccent
|
||||
role:tandoor super=true login=true pw=true
|
||||
rows:tandoor:public.account_emailaddress=0
|
||||
rows:tandoor:public.account_emailconfirmation=0
|
||||
rows:tandoor:public.auth_group=3
|
||||
rows:tandoor:public.auth_group_permissions=0
|
||||
rows:tandoor:public.auth_permission=288
|
||||
rows:tandoor:public.auth_user=1
|
||||
rows:tandoor:public.auth_user_groups=0
|
||||
rows:tandoor:public.auth_user_user_permissions=0
|
||||
rows:tandoor:public.authtoken_token=0
|
||||
rows:tandoor:public.cookbook_ailog=0
|
||||
rows:tandoor:public.cookbook_aiprovider=0
|
||||
rows:tandoor:public.cookbook_automation=0
|
||||
rows:tandoor:public.cookbook_bookmarkletimport=0
|
||||
rows:tandoor:public.cookbook_comment=0
|
||||
rows:tandoor:public.cookbook_connectorconfig=0
|
||||
rows:tandoor:public.cookbook_cooklog=0
|
||||
rows:tandoor:public.cookbook_customfilter=0
|
||||
rows:tandoor:public.cookbook_customfilter_shared=0
|
||||
rows:tandoor:public.cookbook_exportlog=0
|
||||
rows:tandoor:public.cookbook_food=0
|
||||
rows:tandoor:public.cookbook_food_child_inherit_fields=0
|
||||
rows:tandoor:public.cookbook_food_inherit_fields=0
|
||||
rows:tandoor:public.cookbook_food_onhand_users=0
|
||||
rows:tandoor:public.cookbook_food_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_food_substitute=0
|
||||
rows:tandoor:public.cookbook_foodinheritfield=6
|
||||
rows:tandoor:public.cookbook_foodproperty=0
|
||||
rows:tandoor:public.cookbook_household=0
|
||||
rows:tandoor:public.cookbook_importlog=0
|
||||
rows:tandoor:public.cookbook_ingredient=0
|
||||
rows:tandoor:public.cookbook_inventoryentry=0
|
||||
rows:tandoor:public.cookbook_inventorylocation=0
|
||||
rows:tandoor:public.cookbook_inventorylog=0
|
||||
rows:tandoor:public.cookbook_invitelink=0
|
||||
rows:tandoor:public.cookbook_keyword=0
|
||||
rows:tandoor:public.cookbook_mealplan=0
|
||||
rows:tandoor:public.cookbook_mealplan_shared=0
|
||||
rows:tandoor:public.cookbook_mealtype=0
|
||||
rows:tandoor:public.cookbook_nutritioninformation=0
|
||||
rows:tandoor:public.cookbook_property=0
|
||||
rows:tandoor:public.cookbook_propertytype=0
|
||||
rows:tandoor:public.cookbook_recipe=0
|
||||
rows:tandoor:public.cookbook_recipe_keywords=0
|
||||
rows:tandoor:public.cookbook_recipe_properties=0
|
||||
rows:tandoor:public.cookbook_recipe_shared=0
|
||||
rows:tandoor:public.cookbook_recipe_steps=0
|
||||
rows:tandoor:public.cookbook_recipebook=0
|
||||
rows:tandoor:public.cookbook_recipebook_shared=0
|
||||
rows:tandoor:public.cookbook_recipebookentry=0
|
||||
rows:tandoor:public.cookbook_recipeimport=0
|
||||
rows:tandoor:public.cookbook_searchfields=6
|
||||
rows:tandoor:public.cookbook_searchpreference=0
|
||||
rows:tandoor:public.cookbook_searchpreference_fulltext=0
|
||||
rows:tandoor:public.cookbook_searchpreference_icontains=0
|
||||
rows:tandoor:public.cookbook_searchpreference_istartswith=0
|
||||
rows:tandoor:public.cookbook_searchpreference_trigram=0
|
||||
rows:tandoor:public.cookbook_searchpreference_unaccent=0
|
||||
rows:tandoor:public.cookbook_sharelink=0
|
||||
rows:tandoor:public.cookbook_shoppinglist=0
|
||||
rows:tandoor:public.cookbook_shoppinglistentry=0
|
||||
rows:tandoor:public.cookbook_shoppinglistentry_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_shoppinglistrecipe=0
|
||||
rows:tandoor:public.cookbook_space=0
|
||||
rows:tandoor:public.cookbook_space_food_inherit=0
|
||||
rows:tandoor:public.cookbook_step=0
|
||||
rows:tandoor:public.cookbook_step_ingredients=0
|
||||
rows:tandoor:public.cookbook_storage=0
|
||||
rows:tandoor:public.cookbook_supermarket=0
|
||||
rows:tandoor:public.cookbook_supermarket_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_supermarketcategory=0
|
||||
rows:tandoor:public.cookbook_supermarketcategoryrelation=0
|
||||
rows:tandoor:public.cookbook_sync=0
|
||||
rows:tandoor:public.cookbook_synclog=0
|
||||
rows:tandoor:public.cookbook_telegrambot=0
|
||||
rows:tandoor:public.cookbook_unit=0
|
||||
rows:tandoor:public.cookbook_unitconversion=0
|
||||
rows:tandoor:public.cookbook_userfile=0
|
||||
rows:tandoor:public.cookbook_userpreference=1
|
||||
rows:tandoor:public.cookbook_userpreference_plan_share=0
|
||||
rows:tandoor:public.cookbook_userpreference_shopping_share=0
|
||||
rows:tandoor:public.cookbook_userspace=0
|
||||
rows:tandoor:public.cookbook_userspace_groups=0
|
||||
rows:tandoor:public.cookbook_viewlog=0
|
||||
rows:tandoor:public.django_admin_log=0
|
||||
rows:tandoor:public.django_content_type=72
|
||||
rows:tandoor:public.django_migrations=309
|
||||
rows:tandoor:public.django_session=0
|
||||
rows:tandoor:public.django_site=1
|
||||
rows:tandoor:public.mfa_authenticator=0
|
||||
rows:tandoor:public.oauth2_provider_accesstoken=0
|
||||
rows:tandoor:public.oauth2_provider_application=0
|
||||
rows:tandoor:public.oauth2_provider_devicegrant=0
|
||||
rows:tandoor:public.oauth2_provider_grant=0
|
||||
rows:tandoor:public.oauth2_provider_idtoken=0
|
||||
rows:tandoor:public.oauth2_provider_refreshtoken=0
|
||||
rows:tandoor:public.socialaccount_socialaccount=0
|
||||
rows:tandoor:public.socialaccount_socialapp=0
|
||||
rows:tandoor:public.socialaccount_socialapp_sites=0
|
||||
rows:tandoor:public.socialaccount_socialtoken=0
|
||||
rows:tandoor:public.usersessions_usersession=0
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
db:postgres owner=tandoor enc=UTF8 coll=en_US.utf8
|
||||
db:tandoor owner=tandoor enc=UTF8 coll=en_US.utf8
|
||||
ext:tandoor:pg_trgm
|
||||
ext:tandoor:plpgsql
|
||||
ext:tandoor:unaccent
|
||||
role:tandoor super=true login=true pw=true
|
||||
rows:tandoor:public.account_emailaddress=0
|
||||
rows:tandoor:public.account_emailconfirmation=0
|
||||
rows:tandoor:public.auth_group=3
|
||||
rows:tandoor:public.auth_group_permissions=0
|
||||
rows:tandoor:public.auth_permission=288
|
||||
rows:tandoor:public.auth_user=1
|
||||
rows:tandoor:public.auth_user_groups=0
|
||||
rows:tandoor:public.auth_user_user_permissions=0
|
||||
rows:tandoor:public.authtoken_token=0
|
||||
rows:tandoor:public.cookbook_ailog=0
|
||||
rows:tandoor:public.cookbook_aiprovider=0
|
||||
rows:tandoor:public.cookbook_automation=0
|
||||
rows:tandoor:public.cookbook_bookmarkletimport=0
|
||||
rows:tandoor:public.cookbook_comment=0
|
||||
rows:tandoor:public.cookbook_connectorconfig=0
|
||||
rows:tandoor:public.cookbook_cooklog=0
|
||||
rows:tandoor:public.cookbook_customfilter=0
|
||||
rows:tandoor:public.cookbook_customfilter_shared=0
|
||||
rows:tandoor:public.cookbook_exportlog=0
|
||||
rows:tandoor:public.cookbook_food=0
|
||||
rows:tandoor:public.cookbook_food_child_inherit_fields=0
|
||||
rows:tandoor:public.cookbook_food_inherit_fields=0
|
||||
rows:tandoor:public.cookbook_food_onhand_users=0
|
||||
rows:tandoor:public.cookbook_food_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_food_substitute=0
|
||||
rows:tandoor:public.cookbook_foodinheritfield=6
|
||||
rows:tandoor:public.cookbook_foodproperty=0
|
||||
rows:tandoor:public.cookbook_household=0
|
||||
rows:tandoor:public.cookbook_importlog=0
|
||||
rows:tandoor:public.cookbook_ingredient=0
|
||||
rows:tandoor:public.cookbook_inventoryentry=0
|
||||
rows:tandoor:public.cookbook_inventorylocation=0
|
||||
rows:tandoor:public.cookbook_inventorylog=0
|
||||
rows:tandoor:public.cookbook_invitelink=0
|
||||
rows:tandoor:public.cookbook_keyword=0
|
||||
rows:tandoor:public.cookbook_mealplan=0
|
||||
rows:tandoor:public.cookbook_mealplan_shared=0
|
||||
rows:tandoor:public.cookbook_mealtype=0
|
||||
rows:tandoor:public.cookbook_nutritioninformation=0
|
||||
rows:tandoor:public.cookbook_property=0
|
||||
rows:tandoor:public.cookbook_propertytype=0
|
||||
rows:tandoor:public.cookbook_recipe=0
|
||||
rows:tandoor:public.cookbook_recipe_keywords=0
|
||||
rows:tandoor:public.cookbook_recipe_properties=0
|
||||
rows:tandoor:public.cookbook_recipe_shared=0
|
||||
rows:tandoor:public.cookbook_recipe_steps=0
|
||||
rows:tandoor:public.cookbook_recipebook=0
|
||||
rows:tandoor:public.cookbook_recipebook_shared=0
|
||||
rows:tandoor:public.cookbook_recipebookentry=0
|
||||
rows:tandoor:public.cookbook_recipeimport=0
|
||||
rows:tandoor:public.cookbook_searchfields=6
|
||||
rows:tandoor:public.cookbook_searchpreference=0
|
||||
rows:tandoor:public.cookbook_searchpreference_fulltext=0
|
||||
rows:tandoor:public.cookbook_searchpreference_icontains=0
|
||||
rows:tandoor:public.cookbook_searchpreference_istartswith=0
|
||||
rows:tandoor:public.cookbook_searchpreference_trigram=0
|
||||
rows:tandoor:public.cookbook_searchpreference_unaccent=0
|
||||
rows:tandoor:public.cookbook_sharelink=0
|
||||
rows:tandoor:public.cookbook_shoppinglist=0
|
||||
rows:tandoor:public.cookbook_shoppinglistentry=0
|
||||
rows:tandoor:public.cookbook_shoppinglistentry_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_shoppinglistrecipe=0
|
||||
rows:tandoor:public.cookbook_space=0
|
||||
rows:tandoor:public.cookbook_space_food_inherit=0
|
||||
rows:tandoor:public.cookbook_step=0
|
||||
rows:tandoor:public.cookbook_step_ingredients=0
|
||||
rows:tandoor:public.cookbook_storage=0
|
||||
rows:tandoor:public.cookbook_supermarket=0
|
||||
rows:tandoor:public.cookbook_supermarket_shopping_lists=0
|
||||
rows:tandoor:public.cookbook_supermarketcategory=0
|
||||
rows:tandoor:public.cookbook_supermarketcategoryrelation=0
|
||||
rows:tandoor:public.cookbook_sync=0
|
||||
rows:tandoor:public.cookbook_synclog=0
|
||||
rows:tandoor:public.cookbook_telegrambot=0
|
||||
rows:tandoor:public.cookbook_unit=0
|
||||
rows:tandoor:public.cookbook_unitconversion=0
|
||||
rows:tandoor:public.cookbook_userfile=0
|
||||
rows:tandoor:public.cookbook_userpreference=1
|
||||
rows:tandoor:public.cookbook_userpreference_plan_share=0
|
||||
rows:tandoor:public.cookbook_userpreference_shopping_share=0
|
||||
rows:tandoor:public.cookbook_userspace=0
|
||||
rows:tandoor:public.cookbook_userspace_groups=0
|
||||
rows:tandoor:public.cookbook_viewlog=0
|
||||
rows:tandoor:public.django_admin_log=0
|
||||
rows:tandoor:public.django_content_type=72
|
||||
rows:tandoor:public.django_migrations=309
|
||||
rows:tandoor:public.django_session=0
|
||||
rows:tandoor:public.django_site=1
|
||||
rows:tandoor:public.mfa_authenticator=0
|
||||
rows:tandoor:public.oauth2_provider_accesstoken=0
|
||||
rows:tandoor:public.oauth2_provider_application=0
|
||||
rows:tandoor:public.oauth2_provider_devicegrant=0
|
||||
rows:tandoor:public.oauth2_provider_grant=0
|
||||
rows:tandoor:public.oauth2_provider_idtoken=0
|
||||
rows:tandoor:public.oauth2_provider_refreshtoken=0
|
||||
rows:tandoor:public.socialaccount_socialaccount=0
|
||||
rows:tandoor:public.socialaccount_socialapp=0
|
||||
rows:tandoor:public.socialaccount_socialapp_sites=0
|
||||
rows:tandoor:public.socialaccount_socialtoken=0
|
||||
rows:tandoor:public.usersessions_usersession=0
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"tandoor-postgres": {
|
||||
"image": "postgres:17-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "17",
|
||||
"probe_rc": 0
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1122
File diff suppressed because it is too large
Load Diff
+4
@@ -0,0 +1,4 @@
|
||||
[2Ktandoor | Migrating database
|
||||
[2Ktandoor | Apply all migrations: account, admin, auth, authtoken, contenttypes, cookbook, mfa, oauth2_provider, sessions, sites, socialaccount, usersessions
|
||||
[2Ktandoor | Running migrations:
|
||||
[2Ktandoor | No migrations to apply.
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
[09:50:59] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[09:50:59] MV-tandoor: deploying tandoor at FROM {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'}
|
||||
[09:52:53] FROM settled=True in 61.9s :: {"tandoor": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "tandoor-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:52:53] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[09:53:03] tandoor: createsuperuser :: Running django-vite in production mode (no HMR) Superuser created successfully.
|
||||
[09:53:04] tandoor: seeded superuser drill2e9797
|
||||
[09:53:07] tandoor: readback of the seeded account found=True
|
||||
[09:53:07] C1 (seed reads back BEFORE): True
|
||||
[09:53:07] MV-tandoor: PostgreSQL major move {'service': 'tandoor-postgres', 'engine': 'postgres', 'from': 16, 'to': 17} — converting on the bench before the swap
|
||||
[09:53:31] CONVERTED tandoor-postgres PostgreSQL 16 -> 17 in 23.6s (dump 0.71s / 338574 B, load 3.04s, check equal over 100 tables)
|
||||
[09:53:31] MV-tandoor: swapping to TO {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:17-alpine'}
|
||||
[09:53:35] TO up -d rc=0
|
||||
[09:54:06] TO settled=True in 31.0s :: {"tandoor": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "tandoor-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[09:54:06] engine state tandoor-postgres: 17
|
||||
[09:54:07] migration lines observed: 4
|
||||
[09:54:09] tandoor: readback of the seeded account found=True
|
||||
[09:54:09] RESULT (seed reads back AFTER): True
|
||||
[09:54:10] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:80
|
||||
[09:54:25] + 15s tandoor=951M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=295
|
||||
[09:54:40] + 30s tandoor=951M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=591
|
||||
[09:54:55] + 45s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=887
|
||||
[09:55:10] + 60s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=1182
|
||||
[09:55:25] + 76s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=1478
|
||||
[09:55:40] + 91s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=1773
|
||||
[09:55:56] + 106s tandoor=952M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2068
|
||||
[09:56:11] + 121s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=2363
|
||||
[09:56:26] + 136s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2656
|
||||
[09:56:41] + 151s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=2952
|
||||
[09:56:56] + 166s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3248
|
||||
[09:57:11] + 182s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3544
|
||||
[09:57:26] + 197s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=3840
|
||||
[09:57:42] + 212s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=4136
|
||||
[09:57:57] + 227s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=158M/256M peak=183M kills=0 rs=0 reqs=4428
|
||||
[09:58:12] + 242s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=4724
|
||||
[09:58:27] + 257s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=157M/256M peak=183M kills=0 rs=0 reqs=5020
|
||||
[09:58:42] + 272s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=159M/256M peak=183M kills=0 rs=0 reqs=5316
|
||||
[09:58:57] + 288s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=160M/256M peak=183M kills=0 rs=0 reqs=5612
|
||||
[09:59:12] + 303s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=161M/256M peak=183M kills=0 rs=0 reqs=5908
|
||||
[09:59:27] + 318s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=161M/256M peak=183M kills=0 rs=0 reqs=6202
|
||||
[09:59:43] + 333s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=162M/256M peak=183M kills=0 rs=0 reqs=6497
|
||||
[09:59:58] + 348s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=163M/256M peak=183M kills=0 rs=0 reqs=6793
|
||||
[10:00:13] + 363s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7089
|
||||
[10:00:28] + 378s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7385
|
||||
[10:00:43] + 394s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=7681
|
||||
[10:00:58] + 409s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=7975
|
||||
[10:01:13] + 424s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=8270
|
||||
[10:01:29] + 439s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=8566
|
||||
[10:01:44] + 454s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=8862
|
||||
[10:01:59] + 469s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=9158
|
||||
[10:02:14] + 484s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=9454
|
||||
[10:02:29] + 499s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=9750
|
||||
[10:02:44] + 514s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10046
|
||||
[10:02:59] + 530s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=166M/256M peak=183M kills=0 rs=0 reqs=10342
|
||||
[10:03:14] + 545s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10636
|
||||
[10:03:30] + 560s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=10930
|
||||
[10:03:45] + 575s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11226
|
||||
[10:04:00] + 590s tandoor=954M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11522
|
||||
[10:04:15] + 605s tandoor=955M/1024M peak=1001M kills=0 rs=0 tandoor-postgres=165M/256M peak=183M kills=0 rs=0 reqs=11818
|
||||
[10:04:15] memory watch: killed=False tight=[] requests=11818 codes={'302': 11818}
|
||||
[10:04:15] MV-tandoor: ABORT — putting the FROM images back
|
||||
[10:07:25] ABORT: the app did NOT come back (rc=1, 184.7s)
|
||||
+3566
File diff suppressed because it is too large
Load Diff
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"tandoor": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"tandoor-postgres": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-tandoor",
|
||||
"app": "tandoor",
|
||||
"note": "night 2026-09-23 within-a-major move: tandoor-postgres=postgres:17-alpine",
|
||||
"from": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:16-alpine"
|
||||
},
|
||||
"to": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:17-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Ktandoor | Migrating database",
|
||||
"abort": "refuses",
|
||||
"abort_detail": "rsion 16.15.\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] FATAL: database files are incompatible with server\n\u001b[2Ktandoor-postgres | 2026-09-27 12:06:04.351 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization\n\u001b[2Ktandoor-postgres | \n\u001b[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] FATAL: database files are incompatible with server\n\u001b[2Ktandoor-postgres | 2026-09-27 12:07:04.677 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 17, which is not compatible with this version 16.15.",
|
||||
"engine_state_after": {
|
||||
"tandoor-postgres": {
|
||||
"image": "postgres:17-alpine",
|
||||
"probe": "datadir major version",
|
||||
"answer": "17",
|
||||
"probe_rc": 0
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"soak_s": 605.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11818,
|
||||
"codes": {
|
||||
"302": 11818
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"tandoor": {
|
||||
"limit": 1073741824,
|
||||
"peak": 1049731072,
|
||||
"peak_pct": 0.978,
|
||||
"anon_peak_sampled": 845176832,
|
||||
"anon_peak_pct": 0.787,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"tandoor-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 192729088,
|
||||
"peak_pct": 0.718,
|
||||
"anon_peak_sampled": 13815808,
|
||||
"anon_peak_pct": 0.051,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 31.0,
|
||||
"measured_at": "2026-09-27T10:07:25Z",
|
||||
"evidence": "evidence/MV-tandoor",
|
||||
"scratch_cleared": [],
|
||||
"engine_conversion": {
|
||||
"service": "tandoor-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 17,
|
||||
"dump_s": 0.71,
|
||||
"dump_bytes": 338574,
|
||||
"new_engine_ready_s": 2.2,
|
||||
"load_s": 3.04,
|
||||
"dropped": [
|
||||
"tandoor"
|
||||
],
|
||||
"skipped_create_role": [
|
||||
"CREATE ROLE tandoor;"
|
||||
],
|
||||
"result": "converted",
|
||||
"check_equal": true,
|
||||
"pg_version": "17",
|
||||
"tables": 100,
|
||||
"convert_s": 23.6
|
||||
},
|
||||
"files_changed": [],
|
||||
"total_s": 985.7
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"app": "tandoor",
|
||||
"venue": "box 9202 (drill catalog, controller 0.275.0-rc1), the product's guarded Update",
|
||||
"from": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:16-alpine"
|
||||
},
|
||||
"to": {
|
||||
"tandoor": "ghcr.io/tandoorrecipes/recipes:2.6.15",
|
||||
"tandoor-postgres": "postgres:17-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"engine_conversion": {
|
||||
"service": "tandoor-postgres",
|
||||
"engine": "postgres",
|
||||
"from": 16,
|
||||
"to": 17,
|
||||
"result": "converted",
|
||||
"controller_line": "update tandoor: CONVERTED 16 \u2192 17 in 11.418s \u2014 the check is equal (2 database(s), 100 table(s), 687 row(s)), PG_VERSION 17"
|
||||
},
|
||||
"duration_s": 52.4,
|
||||
"measured_at": "2026-09-27T09:38:08Z",
|
||||
"evidence": "felhom.eu/documentation/audits/version-travel-2026-09-26/B/apps/tandoor/box/move.txt"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
before: pinned={'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'} PG_VERSION=16
|
||||
drill: 19b57b1 DRILL tandoor: tandoor-postgres postgres:16-alpine -> postgres:17-alpine with the engine_conversion mark (box proof)
|
||||
phase +0.0s safety-dump | err=None
|
||||
phase +3.1s pulling | err=None
|
||||
phase +4.1s copying | err=None
|
||||
phase +10.3s converting | err=None
|
||||
phase +21.6s starting | err=None
|
||||
phase +22.6s verifying | err=None
|
||||
phase +52.3s done | err=None
|
||||
tandoor: readback of the seeded account found=True
|
||||
2026/09/27 09:38:09 update.go:536: [INFO] [stacks] update tandoor: accepted — guarded update started
|
||||
2026/09/27 09:38:09 update.go:1365: [INFO] [stacks] update tandoor: phase checking
|
||||
2026/09/27 09:38:09 update.go:786: [INFO] [stacks] update tandoor: ladder — the last step (2 of 2) — the catalog's current definition
|
||||
2026/09/27 09:38:09 update.go:800: [INFO] [stacks] update tandoor: this step CONVERTS tandoor-postgres PostgreSQL 16 → 17 (the ladder entry's mark); database volume tandoor_tandoor_postgres_data
|
||||
2026/09/27 09:38:09 update.go:814: [INFO] [stacks] update tandoor: precondition met — Tier 1 (own recovery unit) copy from 2026-09-27T09:36:36Z (2m0s old, limit 24h0m0s)
|
||||
2026/09/27 09:38:09 update.go:1365: [INFO] [stacks] update tandoor: phase safety-dump
|
||||
2026/09/27 09:38:09 update.go:846: [INFO] [stacks] update tandoor: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/tandoor/db-dumps/pre-restore-20260927T093809Z-tandoor-postgres.sql]
|
||||
2026/09/27 09:38:11 undo.go:287: [INFO] [stacks] update tandoor: the undo copy will hold 3 named volume(s), 141.0 MiB
|
||||
2026/09/27 09:38:11 pgconvert.go:340: [INFO] [stacks] update tandoor: conversion space — database volume tandoor_tandoor_postgres_data is 53 MB; the dump needs up to 66 MB + the 2 GB floor; 27.7 GB free beside the stack dir
|
||||
2026/09/27 09:38:11 update.go:1365: [INFO] [stacks] update tandoor: phase pinning
|
||||
2026/09/27 09:38:11 pin.go:373: [INFO] [stacks] update tandoor: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/tandoor/docker-compose.yml (tandoor=ghcr.io/tandoorrecipes/recipes:2.6.15, tandoor-postgres=postgres:17-alpine)
|
||||
2026/09/27 09:38:11 update.go:1365: [INFO] [stacks] update tandoor: phase pulling
|
||||
2026/09/27 09:38:13 update.go:1365: [INFO] [stacks] update tandoor: phase copying
|
||||
2026/09/27 09:38:16 update.go:1365: [INFO] [stacks] update tandoor: phase copying
|
||||
2026/09/27 09:38:16 undo.go:437: [INFO] [stacks] update tandoor: copied tandoor_tandoor_media → tandoor_tandoor_media.pre-update-20260927T093816Z in 473ms
|
||||
2026/09/27 09:38:16 update.go:1365: [INFO] [stacks] update tandoor: phase copying
|
||||
2026/09/27 09:38:17 undo.go:437: [INFO] [stacks] update tandoor: copied tandoor_tandoor_postgres_data → tandoor_tandoor_postgres_data.pre-update-20260927T093816Z in 741ms
|
||||
2026/09/27 09:38:17 update.go:1365: [INFO] [stacks] update tandoor: phase copying
|
||||
2026/09/27 09:38:18 undo.go:437: [INFO] [stacks] update tandoor: copied tandoor_tandoor_static → tandoor_tandoor_static.pre-update-20260927T093816Z in 1.445s
|
||||
2026/09/27 09:38:18 update.go:1365: [INFO] [stacks] update tandoor: phase converting
|
||||
2026/09/27 09:38:18 pgconvert.go:423: [INFO] [stacks] update tandoor: CONVERTING tandoor-postgres PostgreSQL 16 → 17 (volume tandoor_tandoor_postgres_data, kept copy tandoor_tandoor_postgres_data.pre-update-20260927T093816Z)
|
||||
2026/09/27 09:38:22 pgconvert.go:468: [INFO] [stacks] update tandoor: pg_dumpall from 16 done in 603ms — 330 kB, completion line present; before: 2 database(s), 100 table(s), 687 row(s)
|
||||
2026/09/27 09:38:22 update.go:1365: [INFO] [stacks] update tandoor: phase converting
|
||||
2026/09/27 09:38:23 pgconvert.go:484: [INFO] [stacks] update tandoor: database volume tandoor_tandoor_postgres_data emptied (its copy tandoor_tandoor_postgres_data.pre-update-20260927T093816Z holds the old datadir, marker checked twice)
|
||||
2026/09/27 09:38:29 pgconvert.go:513: [INFO] [stacks] update tandoor: loaded into 17 in 3.111s (dropped the entrypoint's empty database(s) [tandoor]; skipped CREATE ROLE for [tandoor])
|
||||
2026/09/27 09:38:30 pgconvert.go:529: [INFO] [stacks] update tandoor: CONVERTED 16 → 17 in 11.418s — the check is equal (2 database(s), 100 table(s), 687 row(s)), PG_VERSION 17
|
||||
2026/09/27 09:38:30 update.go:1365: [INFO] [stacks] update tandoor: phase starting
|
||||
2026/09/27 09:38:31 update.go:1365: [INFO] [stacks] update tandoor: phase verifying
|
||||
2026/09/27 09:39:01 update.go:997: [INFO] [stacks] update tandoor: healthy after 30s (the app's health check passed)
|
||||
2026/09/27 09:39:01 update.go:1015: [INFO] [stacks] update tandoor: KEEPING the pre-conversion datadir copy tandoor_tandoor_postgres_data.pre-update-20260927T093816Z (PostgreSQL 16) until a backup of the converted app is proven
|
||||
2026/09/27 09:39:01 update.go:1033: [INFO] [stacks] update tandoor: DONE in 52s
|
||||
|
||||
RESULT final_phase=done PG_VERSION=17 seed_after=True verdict=proven
|
||||
@@ -0,0 +1,5 @@
|
||||
deploy/reuse tandoor: True
|
||||
tandoor: createsuperuser :: Running django-vite in production mode (no HMR) Superuser created successfully.
|
||||
tandoor: seeded superuser drill8e586d
|
||||
tandoor: readback of the seeded account found=True
|
||||
C1 seed reads back BEFORE: True
|
||||
@@ -0,0 +1,5 @@
|
||||
11:33:40 START paperless-ngx ['paperless-postgres=postgres:18-alpine']
|
||||
11:50:54 DONE paperless-ngx rc=0 verdict=proven read_before=True read_after=True abort=refuses marks=[] peaks={'paperless-postgres': 0.72, 'paperless-redis': 0.054, 'paperless-webserver': 0.492} detail='less-postgres | The files belonging to this database system will be owned by user "postgres".\n\x1b[2Kpaperless-postgres | This user must also own the server proc' (1034s)
|
||||
11:50:54 START tandoor ['tandoor-postgres=postgres:17-alpine']
|
||||
12:07:29 DONE tandoor rc=0 verdict=proven read_before=True read_after=True abort=refuses marks=[] peaks={'tandoor': 0.978, 'tandoor-postgres': 0.718} detail='rsion 16.15.\n\x1b[2Ktandoor-postgres | \n\x1b[2Ktandoor-postgres | PostgreSQL Database directory appears to contain a database; Skipping initialization\n\x1b[2Ktandoor-p' (995s)
|
||||
12:07:29 QUEUE q1 FINISHED
|
||||
@@ -0,0 +1,24 @@
|
||||
== frontend v0.12.1 healthcheck: null
|
||||
/usr/bin/node: ABSENT
|
||||
/nodejs/bin/node: present (v22.22.0)
|
||||
/usr/local/bin/node: ABSENT
|
||||
== backend v0.12.1 healthcheck: null user=
|
||||
== frontend v0.13.0 healthcheck: {"Test":["CMD","node","-e","fetch('http://127.0.0.1:3000/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"],"Interval":30000000000,"Timeout":5000000000,"StartPeriod":30000000000,"Retries":3}
|
||||
/usr/bin/node: present (v26.3.0)
|
||||
/nodejs/bin/node: ABSENT
|
||||
/usr/local/bin/node: ABSENT
|
||||
== backend v0.13.0 healthcheck: {"Test":["CMD-SHELL","python3 -c \"import urllib.request; urllib.request.urlopen('http://localhost:80/health/')\""],"Interval":15000000000,"Timeout":5000000000,"StartPeriod":60000000000,"Retries":5} user=
|
||||
== v0.12.1 PATH=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
exec 'node' on PATH: FAILS
|
||||
== v0.13.0 PATH=PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
|
||||
exec 'node' on PATH: works (v26.3.0)
|
||||
== backend v0.12.1 ENTRYPOINT=["/code/entrypoint.sh"] CMD=["supervisord","-c","/etc/supervisor/conf.d/supervisord.conf"]
|
||||
ijson 3.3.0
|
||||
/bin/bash
|
||||
/code/main/settings.py:398:COUNTRY_REGION_JSON_VERSION = 'v3.1'
|
||||
/code/main/settings.py:398:COUNTRY_REGION_JSON_VERSION = 'v3.1'
|
||||
== backend v0.13.0 ENTRYPOINT=["/code/entrypoint.sh"] CMD=["supervisord","-c","/etc/supervisor/conf.d/supervisord.conf"]
|
||||
ijson 3.3.0
|
||||
/bin/bash
|
||||
/code/main/settings.py:470:COUNTRY_REGION_JSON_VERSION = 'v3.1'
|
||||
/code/main/settings.py:470:COUNTRY_REGION_JSON_VERSION = 'v3.1'
|
||||
@@ -0,0 +1,29 @@
|
||||
# 1. clean start, the image's own entrypoint (downloads the world data) — 10:30:34
|
||||
state: running health=healthy restarts=0
|
||||
file: 46724025 bytes
|
||||
# 2. the file cut to half, the image's own entrypoint — 10:32:51
|
||||
truncated to 23362012 of 46724025 bytes
|
||||
after 120 s: running health=healthy restarts=0
|
||||
1 Running download-countries (first boot may take several minutes; ensure ~2GB RAM is available)...
|
||||
# 3. OUR template's start (the set-aside step), same volume — 10:34:54
|
||||
state: running health=healthy restarts=0
|
||||
felhom: /code/media/countries+regions+states-v3.1.json did not parse to its end - set aside, it is downloaded again
|
||||
JSON file downloaded successfully
|
||||
46724025 countries+regions+states-v3.1.json
|
||||
23362012 countries+regions+states-v3.1.json.cutoff-20260927103501
|
||||
# 4. a second start with the repaired file (nothing set aside) — 10:38:02
|
||||
state: running health=healthy restarts=0
|
||||
set-aside lines on the second start: 0
|
||||
# 5. an import still PENDING (a fresh database) + the file cut to half, the image's own entrypoint — 10:38:59
|
||||
truncated to 23362012 of 46724025 bytes
|
||||
after 150 s: running health=starting restarts=10
|
||||
10 raise common.IncompleteJSONError('Incomplete JSON content')
|
||||
10 ijson.common.IncompleteJSONError: Incomplete JSON content
|
||||
# 6. OUR template's start on the same state — 10:41:43
|
||||
state: running health=healthy restarts=0
|
||||
1 JSON file downloaded successfully
|
||||
1 felhom: /code/media/countries+regions+states-v3.1.json did not parse to its end - set aside, it is downloaded again
|
||||
46724025 countries+regions+states-v3.1.json
|
||||
23362012 countries+regions+states-v3.1.json.cutoff-20260927103501
|
||||
23362012 countries+regions+states-v3.1.json.cutoff-20260927104158
|
||||
trunc volumes left: 0
|
||||
@@ -0,0 +1,17 @@
|
||||
# C — adventurelog v0.12.1 → v0.13.0 (R-655, `09` §3 decision 41)
|
||||
|
||||
- **Images (`C1-images.txt`).** Frontend v0.12.1: no image healthcheck, node only at `/nodejs/bin/node` (not on the PATH);
|
||||
v0.13.0: its own healthcheck (`node` on the PATH → `/usr/bin/node`, fetching `/health`). No single exec path works on
|
||||
both → the override is DROPPED. Backends: same entrypoint and CMD, `ijson` 3.3.0 in both, the same file
|
||||
`countries+regions+states-v3.1.json` in `/code/media`.
|
||||
- **The cut-off file (`C2-truncated-file.txt`).** With the data already imported, v0.13.0 does not read the file ("Latest data
|
||||
already imported") — a cut-off file does no harm there (measured, step 2). With an import PENDING (fresh database) and the
|
||||
file cut to half, the image's own start crash-looped **10 times in 150 s on `IncompleteJSONError`**; with the template's
|
||||
set-aside step the file was renamed `….cutoff-<time>`, downloaded again (46,724,025 B) and the app was healthy; a second
|
||||
start set nothing aside. The update's first start does NOT repair the file; the template does.
|
||||
- **Bench (`apps/adventurelog/bench/`)**: FROM healthy (world data downloaded by v0.12.1); TO healthy in 217 s, "Latest data
|
||||
already imported", 6 migration lines, seed ✓, anon peaks backend 73.0 %, frontend 37.9 %; 0 restarts.
|
||||
- **Box 9202 (`apps/adventurelog/box/`)**: first press under the drill's 90 s health wait → the backend was still starting →
|
||||
UNDONE correctly in 36 s, seed intact (`move.txt`). With the product's default 5-min wait → done in 204 s, the file reused,
|
||||
seed ✓, all three healthy (`move2-5m.txt`). The fresh install got `backing-up` first — R-699 working.
|
||||
- Catalog `06ea7da`: the move, the dropped override and the set-aside step in ONE commit.
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
[10:12:57] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[10:12:57] MV-adventurelog: deploying adventurelog at FROM {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.12.1', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1'}
|
||||
[10:14:55] FROM settled=True in 93.2s :: {"adventurelog": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-frontend": {"status": "running", "health": null, "restarts": 0, "exit": 0}, "adventurelog-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[10:14:55] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[10:14:58] adventurelog: createsuperuser :: Superuser created successfully.
|
||||
[10:15:00] adventurelog: seeded superuser drill2a47a0
|
||||
[10:15:05] adventurelog: readback of the seeded account found=True
|
||||
[10:15:05] C1 (seed reads back BEFORE): True
|
||||
[10:15:06] MV-adventurelog: swapping to TO {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0'}
|
||||
[10:15:09] TO up -d rc=0
|
||||
[10:18:45] TO settled=True in 216.9s :: {"adventurelog": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-frontend": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[10:18:46] migration lines observed: 6
|
||||
[10:18:49] adventurelog: readback of the seeded account found=True
|
||||
[10:18:49] RESULT (seed reads back AFTER): True
|
||||
[10:18:50] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
|
||||
[10:19:05] + 15s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=44M/256M peak=44M kills=0 rs=0 adventurelog-postgres=244M/256M peak=256M kills=0 rs=0 reqs=300
|
||||
[10:19:20] + 30s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=53M/256M peak=67M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=596
|
||||
[10:19:35] + 46s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=54M/256M peak=67M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=896
|
||||
[10:19:50] + 61s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=59M/256M peak=75M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=1196
|
||||
[10:20:06] + 76s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=59M/256M peak=75M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=1493
|
||||
[10:20:21] + 91s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=61M/256M peak=77M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=1792
|
||||
[10:20:36] + 106s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=64M/256M peak=77M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=2092
|
||||
[10:20:51] + 121s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=81M kills=0 rs=0 adventurelog-postgres=252M/256M peak=256M kills=0 rs=0 reqs=2392
|
||||
[10:21:06] + 136s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=81M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=2688
|
||||
[10:21:21] + 152s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=82M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=2988
|
||||
[10:21:36] + 167s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=67M/256M peak=82M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=3288
|
||||
[10:21:52] + 182s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=68M/256M peak=85M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=3588
|
||||
[10:22:07] + 197s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=68M/256M peak=85M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=3888
|
||||
[10:22:22] + 212s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=86M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=4184
|
||||
[10:22:37] + 227s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=86M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=4484
|
||||
[10:22:52] + 242s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=91M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=4784
|
||||
[10:23:07] + 258s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=74M/256M peak=91M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=5084
|
||||
[10:23:23] + 273s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=75M/256M peak=92M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=5384
|
||||
[10:23:38] + 288s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=78M/256M peak=92M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=5680
|
||||
[10:23:53] + 303s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=79M/256M peak=96M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=5980
|
||||
[10:24:08] + 318s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=79M/256M peak=96M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6280
|
||||
[10:24:23] + 333s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=80M/256M peak=97M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6580
|
||||
[10:24:38] + 349s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=80M/256M peak=97M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6876
|
||||
[10:24:54] + 364s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=81M/256M peak=98M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7176
|
||||
[10:25:09] + 379s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=83M/256M peak=98M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7476
|
||||
[10:25:24] + 394s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=83M/256M peak=100M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7776
|
||||
[10:25:39] + 409s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=84M/256M peak=100M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8076
|
||||
[10:25:54] + 424s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=88M/256M peak=102M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8372
|
||||
[10:26:09] + 440s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=90M/256M peak=102M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8672
|
||||
[10:26:25] + 455s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=91M/256M peak=107M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8972
|
||||
[10:26:40] + 470s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=92M/256M peak=107M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9272
|
||||
[10:26:55] + 485s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=93M/256M peak=109M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9572
|
||||
[10:27:10] + 500s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=93M/256M peak=109M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9868
|
||||
[10:27:25] + 515s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=94M/256M peak=112M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=10168
|
||||
[10:27:40] + 530s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=96M/256M peak=112M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=10468
|
||||
[10:27:55] + 546s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=98M/256M peak=113M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=10768
|
||||
[10:28:11] + 561s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=98M/256M peak=113M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11068
|
||||
[10:28:26] + 576s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=99M/256M peak=115M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11364
|
||||
[10:28:41] + 591s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=100M/256M peak=115M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11664
|
||||
[10:28:56] + 606s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=101M/256M peak=117M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11964
|
||||
[10:28:56] memory watch: killed=False tight=[] requests=11964 codes={'200': 11964}
|
||||
[10:28:56] MV-adventurelog: ABORT — putting the FROM images back
|
||||
[10:29:35] adventurelog: readback of the seeded account found=True
|
||||
[10:29:35] ABORT: app came back in 31.1s; data present=True
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-adventurelog",
|
||||
"app": "adventurelog",
|
||||
"note": "night 2026-09-23 within-a-major move: adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0",
|
||||
"from": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.12.1",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1"
|
||||
},
|
||||
"to": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kadventurelog | Apply all migrations: account, admin, adventures, auth, authtoken, billing, contenttypes, integrations, invitations, mfa, sessions, sites, socialaccount, users, worldtravel",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 606.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11964,
|
||||
"codes": {
|
||||
"200": 11964
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"adventurelog": {
|
||||
"limit": 402653184,
|
||||
"peak": 402653184,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 293941248,
|
||||
"anon_peak_pct": 0.73,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"adventurelog-frontend": {
|
||||
"limit": 268435456,
|
||||
"peak": 123539456,
|
||||
"peak_pct": 0.46,
|
||||
"anon_peak_sampled": 101703680,
|
||||
"anon_peak_pct": 0.379,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"adventurelog-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 268439552,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 4337664,
|
||||
"anon_peak_pct": 0.016,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 216.9,
|
||||
"measured_at": "2026-09-27T10:29:35Z",
|
||||
"evidence": "evidence/MV-adventurelog",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"total_s": 998.6
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"adventurelog": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"adventurelog-frontend": {
|
||||
"status": "running",
|
||||
"health": null,
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"adventurelog-postgres": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
[2Kadventurelog | PostgreSQL is up - continuing...
|
||||
[2Kadventurelog-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kadventurelog-postgres | This user must also own the server process.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kadventurelog-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kadventurelog-postgres | The default text search configuration will be set to "english".
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | Data page checksums are disabled.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok
|
||||
[2Kadventurelog-postgres | creating subdirectories ... ok
|
||||
[2Kadventurelog-postgres | selecting dynamic shared memory implementation ... posix
|
||||
[2Kadventurelog-postgres | selecting default max_connections ... 100
|
||||
[2Kadventurelog-postgres | selecting default shared_buffers ... 128MB
|
||||
[2Kadventurelog-postgres | selecting default time zone ... Europe/Budapest
|
||||
[2Kadventurelog-postgres | creating configuration files ... ok
|
||||
[2Kadventurelog | Operations to perform:
|
||||
[2Kadventurelog | Apply all migrations: account, admin, adventures, auth, authtoken, contenttypes, integrations, invitations, mfa, sessions, sites, socialaccount, users, worldtravel
|
||||
[2Kadventurelog | Running migrations:
|
||||
[2Kadventurelog | No migrations to apply.
|
||||
[2Kadventurelog | Latest data already imported.
|
||||
[2Kadventurelog | █████╗ ██████╗ ██╗ ██╗███████╗███╗ ██╗████████╗██╗ ██╗██████╗ ███████╗██╗ ██████╗ ██████╗
|
||||
[2Kadventurelog | ██╔══██╗██╔══██╗██║ ██║██╔════╝████╗ ██║╚══██╔══╝██║ ██║██╔══██╗██╔════╝██║ ██╔═══██╗██╔════╝
|
||||
[2Kadventurelog | ███████║██║ ██║██║ ██║█████╗ ██╔██╗ ██║ ██║ ██║ ██║██████╔╝█████╗ ██║ ██║ ██║██║ ███╗
|
||||
[2Kadventurelog | ██╔══██║██║ ██║╚██╗ ██╔╝██╔══╝ ██║╚██╗██║ ██║ ██║ ██║██╔══██╗██╔══╝ ██║ ██║ ██║██║ ██║
|
||||
[2Kadventurelog | ██║ ██║██████╔╝ ╚████╔╝ ███████╗██║ ╚████║ ██║ ╚██████╔╝██║ ██║███████╗███████╗╚██████╔╝╚██████╔╝
|
||||
[2Kadventurelog | ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═════╝
|
||||
[2Kadventurelog | “Go confidently in the direction of your dreams! Live the life you've imagined.” ― Henry David Thoreau
|
||||
[2Kadventurelog | 2026-09-27 10:29:16,509 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
|
||||
[2Kadventurelog | 2026-09-27 10:29:16,511 INFO supervisord started with pid 1
|
||||
[2Kadventurelog | 2026-09-27 10:29:17,515 INFO spawned: 'gunicorn' with pid 28
|
||||
[2Kadventurelog | 2026-09-27 10:29:17,519 INFO spawned: 'memcached' with pid 29
|
||||
[2Kadventurelog | 2026-09-27 10:29:17,521 INFO spawned: 'nginx' with pid 30
|
||||
[2Kadventurelog | 2026-09-27 10:29:17,524 INFO spawned: 'sync_visited_regions' with pid 31
|
||||
[2Kadventurelog | [2026-09-27 10:29:18 +0000] [28] [INFO] Starting gunicorn 23.0.0
|
||||
[2Kadventurelog | [2026-09-27 10:29:18 +0000] [28] [INFO] Listening at: http://[::]:8000 (28)
|
||||
[2Kadventurelog | [2026-09-27 10:29:18 +0000] [28] [INFO] Using worker: sync
|
||||
[2Kadventurelog | [2026-09-27 10:29:18 +0000] [42] [INFO] Booting worker with pid: 42
|
||||
[2Kadventurelog | [2026-09-27 10:29:18 +0000] [43] [INFO] Booting worker with pid: 43
|
||||
[2Kadventurelog | 2026-09-27 10:29:19,151 INFO success: gunicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:29:19,151 INFO success: memcached entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:29:19,151 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:29:19,151 INFO success: sync_visited_regions entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | Starting periodic sync worker for midnight background jobs...
|
||||
[2Kadventurelog | Next sync scheduled in 48641s (~13.51h) at UTC midnight
|
||||
[2Kadventurelog-postgres | running bootstrap script ... ok
|
||||
[2Kadventurelog-postgres | sh: locale: not found
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:11.819 CEST [35] WARNING: no usable system locales were found
|
||||
[2Kadventurelog-postgres | performing post-bootstrap initialization ... ok
|
||||
[2Kadventurelog-postgres | syncing data to disk ... ok
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | Success. You can now start the database server using:
|
||||
[2Kadventurelog-postgres | initdb: warning: enabling "trust" authentication for local connections
|
||||
[2Kadventurelog-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | pg_ctl -D /var/lib/postgresql/data -l logfile start
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | waiting for server to start....2026-09-27 12:13:13.210 CEST [41] LOG: starting PostgreSQL 16.15 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.213 CEST [41] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.223 CEST [44] LOG: database system was shut down at 2026-09-27 12:13:12 CEST
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.231 CEST [41] LOG: database system is ready to accept connections
|
||||
[2Kadventurelog-postgres | done
|
||||
[2Kadventurelog-postgres | server started
|
||||
[2Kadventurelog-postgres | CREATE DATABASE
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | /usr/local/bin/docker-entrypoint.sh: sourcing /docker-entrypoint-initdb.d/10_postgis.sh
|
||||
[2Kadventurelog-postgres | CREATE DATABASE
|
||||
[2Kadventurelog-postgres | Loading PostGIS extensions into template_postgis
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | You are now connected to database "template_postgis" as user "adventurelog".
|
||||
[2Kadventurelog-postgres | DO
|
||||
[2Kadventurelog-postgres | Loading PostGIS extensions into adventurelog
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | You are now connected to database "adventurelog" as user "adventurelog".
|
||||
[2Kadventurelog-postgres | DO
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | waiting for server to shut down....2026-09-27 12:13:17.020 CEST [41] LOG: received fast shutdown request
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.024 CEST [41] LOG: aborting any active transactions
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.031 CEST [41] LOG: background worker "logical replication launcher" (PID 47) exited with exit code 1
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.031 CEST [42] LOG: shutting down
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.034 CEST [42] LOG: checkpoint starting: shutdown immediate
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.354 CEST [42] LOG: checkpoint complete: wrote 4465 buffers (27.3%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.069 s, sync=0.235 s, total=0.323 s; sync files=963, longest=0.130 s, average=0.001 s; distance=34851 kB, estimate=34851 kB; lsn=0/36FFEE8, redo lsn=0/36FFEE8
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.378 CEST [41] LOG: database system is shut down
|
||||
[2Kadventurelog-postgres | done
|
||||
[2Kadventurelog-postgres | server stopped
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | PostgreSQL init process complete; ready for start up.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.455 CEST [1] LOG: starting PostgreSQL 16.15 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.455 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.456 CEST [1] LOG: listening on IPv6 address "::", port 5432
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.461 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.470 CEST [65] LOG: database system was shut down at 2026-09-27 12:13:17 CEST
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.479 CEST [1] LOG: database system is ready to accept connections
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:18:17.161 CEST [63] LOG: checkpoint starting: time
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:22:47.148 CEST [63] LOG: checkpoint complete: wrote 7242 buffers (44.2%); 0 WAL file(s) added, 0 removed, 10 recycled; write=269.896 s, sync=0.051 s, total=269.987 s; sync files=489, longest=0.006 s, average=0.001 s; distance=172672 kB, estimate=172672 kB; lsn=0/EB41138, redo lsn=0/DF9FF80
|
||||
[2Kadventurelog-frontend | Listening on http://0.0.0.0:3000
|
||||
+1
@@ -0,0 +1 @@
|
||||
null
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{}
|
||||
+1562
File diff suppressed because it is too large
Load Diff
+6
@@ -0,0 +1,6 @@
|
||||
[2Kadventurelog | Apply all migrations: account, admin, adventures, auth, authtoken, billing, contenttypes, integrations, invitations, mfa, sessions, sites, socialaccount, users, worldtravel
|
||||
[2Kadventurelog | Running migrations:
|
||||
[2Kadventurelog | Applying adventures.0072_trail_wanderer_author_fields... OK
|
||||
[2Kadventurelog | Applying adventures.0073_pointfield_geography... OK
|
||||
[2Kadventurelog | Applying adventures.0074_contentimage_source_metadata... OK
|
||||
[2Kadventurelog | Applying adventures.0075_make_visit_dates_timezone_aware... OK
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
[10:12:57] scratch drive folders cleared before FROM (R-656): none existed
|
||||
[10:12:57] MV-adventurelog: deploying adventurelog at FROM {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.12.1', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1'}
|
||||
[10:14:55] FROM settled=True in 93.2s :: {"adventurelog": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-frontend": {"status": "running", "health": null, "restarts": 0, "exit": 0}, "adventurelog-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[10:14:55] fixture: the BOX walk's own (Django), through upgrade_boxport
|
||||
[10:14:58] adventurelog: createsuperuser :: Superuser created successfully.
|
||||
[10:15:00] adventurelog: seeded superuser drill2a47a0
|
||||
[10:15:05] adventurelog: readback of the seeded account found=True
|
||||
[10:15:05] C1 (seed reads back BEFORE): True
|
||||
[10:15:06] MV-adventurelog: swapping to TO {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0'}
|
||||
[10:15:09] TO up -d rc=0
|
||||
[10:18:45] TO settled=True in 216.9s :: {"adventurelog": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-frontend": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}, "adventurelog-postgres": {"status": "running", "health": "healthy", "restarts": 0, "exit": 0}}
|
||||
[10:18:46] migration lines observed: 6
|
||||
[10:18:49] adventurelog: readback of the seeded account found=True
|
||||
[10:18:49] RESULT (seed reads back AFTER): True
|
||||
[10:18:50] memory watch: 600s, 4 callers on 1 path(s) at 172.18.0.2:3000
|
||||
[10:19:05] + 15s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=44M/256M peak=44M kills=0 rs=0 adventurelog-postgres=244M/256M peak=256M kills=0 rs=0 reqs=300
|
||||
[10:19:20] + 30s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=53M/256M peak=67M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=596
|
||||
[10:19:35] + 46s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=54M/256M peak=67M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=896
|
||||
[10:19:50] + 61s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=59M/256M peak=75M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=1196
|
||||
[10:20:06] + 76s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=59M/256M peak=75M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=1493
|
||||
[10:20:21] + 91s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=61M/256M peak=77M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=1792
|
||||
[10:20:36] + 106s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=64M/256M peak=77M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=2092
|
||||
[10:20:51] + 121s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=81M kills=0 rs=0 adventurelog-postgres=252M/256M peak=256M kills=0 rs=0 reqs=2392
|
||||
[10:21:06] + 136s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=81M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=2688
|
||||
[10:21:21] + 152s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=65M/256M peak=82M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=2988
|
||||
[10:21:36] + 167s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=67M/256M peak=82M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=3288
|
||||
[10:21:52] + 182s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=68M/256M peak=85M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=3588
|
||||
[10:22:07] + 197s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=68M/256M peak=85M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=3888
|
||||
[10:22:22] + 212s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=86M kills=0 rs=0 adventurelog-postgres=255M/256M peak=256M kills=0 rs=0 reqs=4184
|
||||
[10:22:37] + 227s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=86M kills=0 rs=0 adventurelog-postgres=254M/256M peak=256M kills=0 rs=0 reqs=4484
|
||||
[10:22:52] + 242s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=73M/256M peak=91M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=4784
|
||||
[10:23:07] + 258s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=74M/256M peak=91M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=5084
|
||||
[10:23:23] + 273s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=75M/256M peak=92M kills=0 rs=0 adventurelog-postgres=253M/256M peak=256M kills=0 rs=0 reqs=5384
|
||||
[10:23:38] + 288s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=78M/256M peak=92M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=5680
|
||||
[10:23:53] + 303s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=79M/256M peak=96M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=5980
|
||||
[10:24:08] + 318s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=79M/256M peak=96M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6280
|
||||
[10:24:23] + 333s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=80M/256M peak=97M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6580
|
||||
[10:24:38] + 349s adventurelog=316M/384M peak=384M kills=0 rs=0 adventurelog-frontend=80M/256M peak=97M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=6876
|
||||
[10:24:54] + 364s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=81M/256M peak=98M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7176
|
||||
[10:25:09] + 379s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=83M/256M peak=98M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7476
|
||||
[10:25:24] + 394s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=83M/256M peak=100M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=7776
|
||||
[10:25:39] + 409s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=84M/256M peak=100M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8076
|
||||
[10:25:54] + 424s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=88M/256M peak=102M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8372
|
||||
[10:26:09] + 440s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=90M/256M peak=102M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8672
|
||||
[10:26:25] + 455s adventurelog=315M/384M peak=384M kills=0 rs=0 adventurelog-frontend=91M/256M peak=107M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=8972
|
||||
[10:26:40] + 470s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=92M/256M peak=107M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9272
|
||||
[10:26:55] + 485s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=93M/256M peak=109M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9572
|
||||
[10:27:10] + 500s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=93M/256M peak=109M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=9868
|
||||
[10:27:25] + 515s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=94M/256M peak=112M kills=0 rs=0 adventurelog-postgres=251M/256M peak=256M kills=0 rs=0 reqs=10168
|
||||
[10:27:40] + 530s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=96M/256M peak=112M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=10468
|
||||
[10:27:55] + 546s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=98M/256M peak=113M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=10768
|
||||
[10:28:11] + 561s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=98M/256M peak=113M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11068
|
||||
[10:28:26] + 576s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=99M/256M peak=115M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11364
|
||||
[10:28:41] + 591s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=100M/256M peak=115M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11664
|
||||
[10:28:56] + 606s adventurelog=314M/384M peak=384M kills=0 rs=0 adventurelog-frontend=101M/256M peak=117M kills=0 rs=0 adventurelog-postgres=250M/256M peak=256M kills=0 rs=0 reqs=11964
|
||||
[10:28:56] memory watch: killed=False tight=[] requests=11964 codes={'200': 11964}
|
||||
[10:28:56] MV-adventurelog: ABORT — putting the FROM images back
|
||||
[10:29:35] adventurelog: readback of the seeded account found=True
|
||||
[10:29:35] ABORT: app came back in 31.1s; data present=True
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
[2Kadventurelog-frontend | Listening on http://0.0.0.0:3000
|
||||
[2Kadventurelog-postgres | The files belonging to this database system will be owned by user "postgres".
|
||||
[2Kadventurelog-postgres | This user must also own the server process.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | The database cluster will be initialized with locale "en_US.utf8".
|
||||
[2Kadventurelog-postgres | The default database encoding has accordingly been set to "UTF8".
|
||||
[2Kadventurelog-postgres | The default text search configuration will be set to "english".
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | Data page checksums are disabled.
|
||||
[2Kadventurelog | PostgreSQL is up - continuing...
|
||||
[2Kadventurelog | Operations to perform:
|
||||
[2Kadventurelog | Apply all migrations: account, admin, adventures, auth, authtoken, billing, contenttypes, integrations, invitations, mfa, sessions, sites, socialaccount, users, worldtravel
|
||||
[2Kadventurelog | Running migrations:
|
||||
[2Kadventurelog | Applying adventures.0072_trail_wanderer_author_fields... OK
|
||||
[2Kadventurelog | Applying adventures.0073_pointfield_geography... OK
|
||||
[2Kadventurelog | Applying adventures.0074_contentimage_source_metadata... OK
|
||||
[2Kadventurelog | Applying adventures.0075_make_visit_dates_timezone_aware... OK
|
||||
[2Kadventurelog | Applying adventures.0076_normalize_all_day_visit_end_dates... OK
|
||||
[2Kadventurelog | Applying billing.0001_initial... OK
|
||||
[2Kadventurelog | Applying integrations.0007_wandererintegration_api_key_auth... OK
|
||||
[2Kadventurelog | Applying integrations.0008_endurainintegration... OK
|
||||
[2Kadventurelog | Applying integrations.0009_alter_endurainintegration_auth_method... OK
|
||||
[2Kadventurelog | Applying worldtravel.0019_pointfield_coordinates... OK
|
||||
[2Kadventurelog | Running download-countries (first boot may take several minutes; ensure ~2GB RAM is available)...
|
||||
[2Kadventurelog | Latest data already imported.
|
||||
[2Kadventurelog | █████╗ ██████╗ ██╗ ██╗███████╗███╗ ██╗████████╗██╗ ██╗██████╗ ███████╗██╗ ██████╗ ██████╗
|
||||
[2Kadventurelog | ██╔══██╗██╔══██╗██║ ██║██╔════╝████╗ ██║╚══██╔══╝██║ ██║██╔══██╗██╔════╝██║ ██╔═══██╗██╔════╝
|
||||
[2Kadventurelog | ███████║██║ ██║██║ ██║█████╗ ██╔██╗ ██║ ██║ ██║ ██║██████╔╝█████╗ ██║ ██║ ██║██║ ███╗
|
||||
[2Kadventurelog | ██╔══██║██║ ██║╚██╗ ██╔╝██╔══╝ ██║╚██╗██║ ██║ ██║ ██║██╔══██╗██╔══╝ ██║ ██║ ██║██║ ██║
|
||||
[2Kadventurelog | ██║ ██║██████╔╝ ╚████╔╝ ███████╗██║ ╚████║ ██║ ╚██████╔╝██║ ██║███████╗███████╗╚██████╔╝╚██████╔╝
|
||||
[2Kadventurelog | ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═════╝
|
||||
[2Kadventurelog | “Go confidently in the direction of your dreams! Live the life you've imagined.” ― Henry David Thoreau
|
||||
[2Kadventurelog | 2026-09-27 10:18:08,990 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
|
||||
[2Kadventurelog | 2026-09-27 10:18:08,992 INFO supervisord started with pid 1
|
||||
[2Kadventurelog | 2026-09-27 10:18:09,996 INFO spawned: 'cron' with pid 82
|
||||
[2Kadventurelog | 2026-09-27 10:18:09,999 INFO spawned: 'gunicorn' with pid 83
|
||||
[2Kadventurelog | 2026-09-27 10:18:10,002 INFO spawned: 'memcached' with pid 84
|
||||
[2Kadventurelog | 2026-09-27 10:18:10,004 INFO spawned: 'nginx' with pid 85
|
||||
[2Kadventurelog | [2026-09-27 10:18:10 +0000] [83] [INFO] Starting gunicorn 23.0.0
|
||||
[2Kadventurelog | [2026-09-27 10:18:10 +0000] [83] [INFO] Listening at: http://[::]:8000 (83)
|
||||
[2Kadventurelog | [2026-09-27 10:18:10 +0000] [83] [INFO] Using worker: sync
|
||||
[2Kadventurelog | [2026-09-27 10:18:10 +0000] [96] [INFO] Booting worker with pid: 96
|
||||
[2Kadventurelog | [2026-09-27 10:18:10 +0000] [97] [INFO] Booting worker with pid: 97
|
||||
[2Kadventurelog | 2026-09-27 10:18:11,534 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:18:11,535 INFO success: gunicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:18:11,535 INFO success: memcached entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog | 2026-09-27 10:18:11,535 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | fixing permissions on existing directory /var/lib/postgresql/data ... ok
|
||||
[2Kadventurelog-postgres | creating subdirectories ... ok
|
||||
[2Kadventurelog-postgres | selecting dynamic shared memory implementation ... posix
|
||||
[2Kadventurelog-postgres | selecting default max_connections ... 100
|
||||
[2Kadventurelog-postgres | selecting default shared_buffers ... 128MB
|
||||
[2Kadventurelog-postgres | selecting default time zone ... Europe/Budapest
|
||||
[2Kadventurelog-postgres | creating configuration files ... ok
|
||||
[2Kadventurelog-postgres | running bootstrap script ... ok
|
||||
[2Kadventurelog-postgres | sh: locale: not found
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:11.819 CEST [35] WARNING: no usable system locales were found
|
||||
[2Kadventurelog-postgres | performing post-bootstrap initialization ... ok
|
||||
[2Kadventurelog-postgres | syncing data to disk ... ok
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | Success. You can now start the database server using:
|
||||
[2Kadventurelog-postgres | initdb: warning: enabling "trust" authentication for local connections
|
||||
[2Kadventurelog-postgres | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | pg_ctl -D /var/lib/postgresql/data -l logfile start
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | waiting for server to start....2026-09-27 12:13:13.210 CEST [41] LOG: starting PostgreSQL 16.15 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.213 CEST [41] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.223 CEST [44] LOG: database system was shut down at 2026-09-27 12:13:12 CEST
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:13.231 CEST [41] LOG: database system is ready to accept connections
|
||||
[2Kadventurelog-postgres | done
|
||||
[2Kadventurelog-postgres | server started
|
||||
[2Kadventurelog-postgres | CREATE DATABASE
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | /usr/local/bin/docker-entrypoint.sh: sourcing /docker-entrypoint-initdb.d/10_postgis.sh
|
||||
[2Kadventurelog-postgres | CREATE DATABASE
|
||||
[2Kadventurelog-postgres | Loading PostGIS extensions into template_postgis
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | You are now connected to database "template_postgis" as user "adventurelog".
|
||||
[2Kadventurelog-postgres | DO
|
||||
[2Kadventurelog-postgres | Loading PostGIS extensions into adventurelog
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | CREATE EXTENSION
|
||||
[2Kadventurelog-postgres | You are now connected to database "adventurelog" as user "adventurelog".
|
||||
[2Kadventurelog-postgres | DO
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | waiting for server to shut down....2026-09-27 12:13:17.020 CEST [41] LOG: received fast shutdown request
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.024 CEST [41] LOG: aborting any active transactions
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.031 CEST [41] LOG: background worker "logical replication launcher" (PID 47) exited with exit code 1
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.031 CEST [42] LOG: shutting down
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.034 CEST [42] LOG: checkpoint starting: shutdown immediate
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.354 CEST [42] LOG: checkpoint complete: wrote 4465 buffers (27.3%); 0 WAL file(s) added, 0 removed, 2 recycled; write=0.069 s, sync=0.235 s, total=0.323 s; sync files=963, longest=0.130 s, average=0.001 s; distance=34851 kB, estimate=34851 kB; lsn=0/36FFEE8, redo lsn=0/36FFEE8
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.378 CEST [41] LOG: database system is shut down
|
||||
[2Kadventurelog-postgres | done
|
||||
[2Kadventurelog-postgres | server stopped
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | PostgreSQL init process complete; ready for start up.
|
||||
[2Kadventurelog-postgres |
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.455 CEST [1] LOG: starting PostgreSQL 16.15 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.455 CEST [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.456 CEST [1] LOG: listening on IPv6 address "::", port 5432
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.461 CEST [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.470 CEST [65] LOG: database system was shut down at 2026-09-27 12:13:17 CEST
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:13:17.479 CEST [1] LOG: database system is ready to accept connections
|
||||
[2Kadventurelog-postgres | 2026-09-27 12:18:17.161 CEST [63] LOG: checkpoint starting: time
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"adventurelog": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"adventurelog-frontend": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
},
|
||||
"adventurelog-postgres": {
|
||||
"status": "running",
|
||||
"health": "healthy",
|
||||
"restarts": 0,
|
||||
"exit": 0
|
||||
}
|
||||
}
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"harness_version": 4,
|
||||
"edge": "MV-adventurelog",
|
||||
"app": "adventurelog",
|
||||
"note": "night 2026-09-23 within-a-major move: adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0",
|
||||
"from": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.12.1",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1"
|
||||
},
|
||||
"to": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"migration_observed": "\u001b[2Kadventurelog | Apply all migrations: account, admin, adventures, auth, authtoken, billing, contenttypes, integrations, invitations, mfa, sessions, sites, socialaccount, users, worldtravel",
|
||||
"abort": "starts-and-serves",
|
||||
"abort_detail": null,
|
||||
"engine_state_after": null,
|
||||
"memory": {
|
||||
"soak_s": 606.6,
|
||||
"requested_s": 600,
|
||||
"requests": 11964,
|
||||
"codes": {
|
||||
"200": 11964
|
||||
},
|
||||
"first_kill": null,
|
||||
"containers": {
|
||||
"adventurelog": {
|
||||
"limit": 402653184,
|
||||
"peak": 402653184,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 293941248,
|
||||
"anon_peak_pct": 0.73,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"adventurelog-frontend": {
|
||||
"limit": 268435456,
|
||||
"peak": 123539456,
|
||||
"peak_pct": 0.46,
|
||||
"anon_peak_sampled": 101703680,
|
||||
"anon_peak_pct": 0.379,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
},
|
||||
"adventurelog-postgres": {
|
||||
"limit": 268435456,
|
||||
"peak": 268439552,
|
||||
"peak_pct": 1.0,
|
||||
"anon_peak_sampled": 4337664,
|
||||
"anon_peak_pct": 0.016,
|
||||
"oom_kills": 0,
|
||||
"restarts": 0,
|
||||
"oomkilled_flag": false,
|
||||
"measured": true
|
||||
}
|
||||
},
|
||||
"unmeasured": [],
|
||||
"load": "reached"
|
||||
},
|
||||
"marks": [],
|
||||
"duration_s": 216.9,
|
||||
"measured_at": "2026-09-27T10:29:35Z",
|
||||
"evidence": "evidence/MV-adventurelog",
|
||||
"scratch_cleared": [],
|
||||
"files_changed": [],
|
||||
"total_s": 998.6
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"app": "adventurelog",
|
||||
"venue": "box 9202 (drill catalog, controller 0.275.0, health_timeout 5m = the product default), the product's guarded Update",
|
||||
"from": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.12.1",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine"
|
||||
},
|
||||
"to": {
|
||||
"adventurelog": "ghcr.io/seanmorley15/adventurelog-backend:v0.13.0",
|
||||
"adventurelog-frontend": "ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0",
|
||||
"adventurelog-postgres": "postgis/postgis:16-3.5-alpine"
|
||||
},
|
||||
"verdict": "proven",
|
||||
"seed_read_before": true,
|
||||
"seed_read_after": true,
|
||||
"healthy_after": true,
|
||||
"world_data": "1 Latest data already imported.",
|
||||
"duration_s": 204.1,
|
||||
"measured_at": "2026-09-27T10:50:47Z",
|
||||
"evidence": "felhom.eu/documentation/audits/version-travel-2026-09-26/C/apps/adventurelog/box/move2-5m.txt"
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
phase +0.0s backing-up | err=None
|
||||
phase +14.4s safety-dump | err=None
|
||||
phase +16.4s pulling | err=None
|
||||
phase +17.5s copying | err=None
|
||||
phase +31.8s starting | err=None
|
||||
phase +38.0s verifying | err=None
|
||||
phase +128.2s undoing | err=None
|
||||
phase +165.1s undone | err=None
|
||||
adventurelog: readback of the seeded account found=True
|
||||
backend world-data lines: 1 Latest data already imported.
|
||||
containers: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.12.1 Up 42 seconds (healthy) | adventurelog-postgres postgis/postgis:16-3.5-alpine Up 48 seconds (healthy) | adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 Up 48 seconds (healthy) |
|
||||
2026/09/27 10:46:33 update.go:536: [INFO] [stacks] update adventurelog: accepted — guarded update started
|
||||
2026/09/27 10:46:33 update.go:1365: [INFO] [stacks] update adventurelog: phase checking
|
||||
2026/09/27 10:46:33 update.go:786: [INFO] [stacks] update adventurelog: ladder — the last step (1 of 1) — the catalog's current definition
|
||||
2026/09/27 10:46:33 update.go:816: [INFO] [stacks] update adventurelog: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-27T10:43:45Z) (found: none) — backing up first
|
||||
2026/09/27 10:46:33 update.go:1365: [INFO] [stacks] update adventurelog: phase backing-up
|
||||
2026/09/27 10:46:46 update.go:831: [INFO] [stacks] update adventurelog: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-27T10:46:33Z
|
||||
2026/09/27 10:46:46 update.go:1365: [INFO] [stacks] update adventurelog: phase safety-dump
|
||||
2026/09/27 10:46:47 update.go:846: [INFO] [stacks] update adventurelog: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/adventurelog/db-dumps/pre-restore-20260927T104647Z-adventurelog-postgres.sql]
|
||||
2026/09/27 10:46:48 undo.go:287: [INFO] [stacks] update adventurelog: the undo copy will hold 2 named volume(s), 234.1 MiB
|
||||
2026/09/27 10:46:48 update.go:1365: [INFO] [stacks] update adventurelog: phase pinning
|
||||
2026/09/27 10:46:48 pin.go:373: [INFO] [stacks] update adventurelog: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/adventurelog/docker-compose.yml (adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-fro
|
||||
2026/09/27 10:46:48 update.go:1365: [INFO] [stacks] update adventurelog: phase pulling
|
||||
2026/09/27 10:46:49 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:47:00 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:47:01 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_media → adventurelog_adventurelog_media.pre-update-20260927T104700Z in 1.508s
|
||||
2026/09/27 10:47:01 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:47:04 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_postgres_data → adventurelog_adventurelog_postgres_data.pre-update-20260927T104700Z in 2.066s
|
||||
2026/09/27 10:47:04 update.go:1365: [INFO] [stacks] update adventurelog: phase starting
|
||||
2026/09/27 10:47:10 update.go:1365: [INFO] [stacks] update adventurelog: phase verifying
|
||||
2026/09/27 10:48:35 update.go:1228: [WARN] [stacks] update adventurelog: no probe container for adventurelog — settling on container state instead; candidates: [adventurelog(starting) adventurelog-frontend(unhealthy) adventurelog-postgres(running)]
|
||||
2026/09/27 10:48:40 update.go:1066: [ERROR] [stacks] update adventurelog FAILED after the new version was started: not healthy: not healthy within 1m30s (last: unhealthy, and the check resolves to no container)
|
||||
2026/09/27 10:48:41 update.go:1058: [INFO] [stacks] update adventurelog: kept 3903 bytes of the app's own log at /opt/docker/stacks/adventurelog/hold-logs/20260927T104840Z/compose-logs.txt before stopping it (R-621)
|
||||
2026/09/27 10:48:41 update.go:1365: [INFO] [stacks] update adventurelog: phase undoing
|
||||
2026/09/27 10:48:41 undo.go:515: [WARN] [stacks] update adventurelog: UNDO — putting back the previous version and its 2 volume copy(ies) (reason: not healthy: not healthy within 1m30s (last: unhealthy, and the check resolves to no container))
|
||||
2026/09/27 10:49:17 unattended.go:492: [INFO] [stacks] update adventurelog: step adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0, adventurelog-postgres=postgis/postgis:16-3.5-alpine recorded as undone — the au
|
||||
2026/09/27 10:49:17 undo.go:640: [INFO] [stacks] update adventurelog: event app_update_undone
|
||||
2026/09/27 10:49:17 undo.go:568: [INFO] [stacks] update adventurelog: UNDONE in 36s — the previous version is running on the data from before the update (the app's health check passed)
|
||||
|
||||
RESULT final_phase=undone seed_after=True state=running verdict=failed
|
||||
@@ -0,0 +1,31 @@
|
||||
phase +0.0s safety-dump | err=None
|
||||
phase +2.1s pulling | err=None
|
||||
phase +3.1s copying | err=None
|
||||
phase +10.3s starting | err=None
|
||||
phase +16.4s verifying | err=None
|
||||
phase +204.1s done | err=None
|
||||
adventurelog: readback of the seeded account found=True
|
||||
world-data lines: 1 Latest data already imported.
|
||||
containers: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.13.0 Up 3 minutes (healthy) | adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 Up 3 minutes (healthy) | adventurelog-postgres postgis/postgis:16-3.5-alpine Up 3 minutes (healthy) |
|
||||
2026/09/27 10:50:48 update.go:536: [INFO] [stacks] update adventurelog: accepted — guarded update started
|
||||
2026/09/27 10:50:48 update.go:1365: [INFO] [stacks] update adventurelog: phase checking
|
||||
2026/09/27 10:50:48 update.go:786: [INFO] [stacks] update adventurelog: ladder — the last step (1 of 1) — the catalog's current definition
|
||||
2026/09/27 10:50:48 update.go:814: [INFO] [stacks] update adventurelog: precondition met — Tier 2 (second drive) copy from 2026-09-27T10:46:33Z (4m0s old, limit 24h0m0s)
|
||||
2026/09/27 10:50:48 update.go:1365: [INFO] [stacks] update adventurelog: phase safety-dump
|
||||
2026/09/27 10:50:49 update.go:846: [INFO] [stacks] update adventurelog: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/adventurelog/db-dumps/pre-restore-20260927T105048Z-adventurelog-postgres.sql]
|
||||
2026/09/27 10:50:49 undo.go:287: [INFO] [stacks] update adventurelog: the undo copy will hold 2 named volume(s), 234.6 MiB
|
||||
2026/09/27 10:50:49 update.go:1365: [INFO] [stacks] update adventurelog: phase pinning
|
||||
2026/09/27 10:50:49 pin.go:373: [INFO] [stacks] update adventurelog: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/adventurelog/docker-compose.yml (adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-fro
|
||||
2026/09/27 10:50:49 update.go:1365: [INFO] [stacks] update adventurelog: phase pulling
|
||||
2026/09/27 10:50:51 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:50:54 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:50:55 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_media → adventurelog_adventurelog_media.pre-update-20260927T105054Z in 832ms
|
||||
2026/09/27 10:50:55 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
|
||||
2026/09/27 10:50:57 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_postgres_data → adventurelog_adventurelog_postgres_data.pre-update-20260927T105054Z in 2.031s
|
||||
2026/09/27 10:50:57 update.go:1365: [INFO] [stacks] update adventurelog: phase starting
|
||||
2026/09/27 10:51:03 update.go:1365: [INFO] [stacks] update adventurelog: phase verifying
|
||||
2026/09/27 10:52:29 update.go:1228: [WARN] [stacks] update adventurelog: no probe container for adventurelog — settling on container state instead; candidates: [adventurelog(starting) adventurelog-frontend(unhealthy) adventurelog-postgres(running)]
|
||||
2026/09/27 10:54:11 update.go:997: [INFO] [stacks] update adventurelog: healthy after 3m8s (the app's health check passed)
|
||||
2026/09/27 10:54:11 update.go:1033: [INFO] [stacks] update adventurelog: DONE in 3m24s
|
||||
|
||||
RESULT final_phase=done seed_after=True state=running verdict=proven
|
||||
@@ -0,0 +1,5 @@
|
||||
deploy/reuse adventurelog: True
|
||||
adventurelog: createsuperuser :: Superuser created successfully.
|
||||
adventurelog: seeded superuser drillfa397d
|
||||
adventurelog: readback of the seeded account found=True
|
||||
C1 seed reads back BEFORE: True
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
update:
|
||||
health_timeout: 5m
|
||||
Up 20 seconds (healthy)
|
||||
@@ -0,0 +1,3 @@
|
||||
12:12:51 START adventurelog ['adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0']
|
||||
12:29:43 DONE adventurelog rc=0 verdict=proven read_before=True read_after=True abort=starts-and-serves marks=[] peaks={'adventurelog': 1.0, 'adventurelog-frontend': 0.46, 'adventurelog-postgres': 1.0} detail='None' (1012s)
|
||||
12:29:43 QUEUE q2 FINISHED
|
||||
@@ -0,0 +1,17 @@
|
||||
== demo-hp-bb76ea 2026-09-27T10:16:42Z
|
||||
{"op_blob_b64":"eyJleHBpcmVzX2F0IjoiMjAyNi0wOS0yN1QxMDo0Njo0MloiLCJpc3N1ZWRfYXQiOiIyMDI2LTA5LTI3VDEwOjE2OjQyWiIsImtleV9pZCI6ImZlbGhvbS1vcC0xIiwibm9uY2UiOiIyZWExMWJiNjk3Zjc3ZjAwM2RiMDA4MTJhOGVhMTI5MSIsIm9wIjoiYWdlbnRfdXBkYXRlIiwicGFyYW1zIjp7InNoYTI1NiI6ImFkNGU3NWYxNmQzMzg1NTJmNDU4OGQzZmU2NGM1MWNiZjk2NTEyMjBiOWQyMjNiNTM4NmI4NWI2YzM3ZmQ0YzMiLCJ2ZXJzaW9uIjoiMC4xMzUuMCJ9LCJ0YXJnZXQiOnsiZ3Vlc3RfaWQiOiIiLCJob3N0X2lkIjoiZGVtby1ocC1iYjc2ZWEifX0=","sig_armored":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgvzPSoI2ADfHbHEAHRCPmujzBoW\nMZnxNr+xYHre2UvD4AAAAMZmVsaG9tLW9wLXYxAAAAAAAAAAZzaGE1MTIAAABTAAAAC3Nz\naC1lZDI1NTE5AAAAQDW14qvokAwDQxiNXvQAK1KQgi0KM/8MCr4QXDmFhZEjnmdmu6CfP0\nIz55SCBDCHPYOENfBvftpYMD6wz3elqwE=\n-----END SSH SIGNATURE-----\n"}
|
||||
uploaded signed op to the hub jobs queue
|
||||
== demo-felhom-8363b5 2026-09-27T10:16:42Z
|
||||
{"op_blob_b64":"eyJleHBpcmVzX2F0IjoiMjAyNi0wOS0yN1QxMDo0Njo0MloiLCJpc3N1ZWRfYXQiOiIyMDI2LTA5LTI3VDEwOjE2OjQyWiIsImtleV9pZCI6ImZlbGhvbS1vcC0xIiwibm9uY2UiOiIxNjAyYjIzOTI5MTg1ZWU2ZDlkNGQ0ZTNhMGY1ODg5YyIsIm9wIjoiYWdlbnRfdXBkYXRlIiwicGFyYW1zIjp7InNoYTI1NiI6ImFkNGU3NWYxNmQzMzg1NTJmNDU4OGQzZmU2NGM1MWNiZjk2NTEyMjBiOWQyMjNiNTM4NmI4NWI2YzM3ZmQ0YzMiLCJ2ZXJzaW9uIjoiMC4xMzUuMCJ9LCJ0YXJnZXQiOnsiZ3Vlc3RfaWQiOiIiLCJob3N0X2lkIjoiZGVtby1mZWxob20tODM2M2I1In19","sig_armored":"-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgvzPSoI2ADfHbHEAHRCPmujzBoW\nMZnxNr+xYHre2UvD4AAAAMZmVsaG9tLW9wLXYxAAAAAAAAAAZzaGE1MTIAAABTAAAAC3Nz\naC1lZDI1NTE5AAAAQBWbQHqOcEJPGWVn6+zIDnLgtjp0I7ls56AqcJd8QE0jVtIahHyAhN\ng9dnVhL8lclx5Jcd6MOBs2G7LrTzRYiw4=\n-----END SSH SIGNATURE-----\n"}
|
||||
uploaded signed op to the hub jobs queue
|
||||
== demo-hp felhom-agent 0.134.0
|
||||
== felhom-pve felhom-agent 0.135.0
|
||||
Sep 27 12:21:53 demo-felhom felhom-agent[2789656]: time=2026-09-27T12:21:53.431+02:00 level=WARN msg="selfupdate: new version running — dwelling before commit" version=0.135.0 prev=0.134.0 dwell=1m0s
|
||||
Sep 27 12:22:53 demo-felhom sudo[2790969]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/local/sbin/felhom-selfupdate-guarded commit
|
||||
Sep 27 12:22:53 demo-felhom felhom-selfupdate-guarded[2790977]: committed (pending cleared, .prev retained)
|
||||
Sep 27 12:22:53 demo-felhom felhom-agent[2789656]: time=2026-09-27T12:22:53.450+02:00 level=WARN msg="selfupdate: update committed" version=0.135.0 wrapper=""
|
||||
== demo-hp 2026-09-27T10:29:13Z felhom-agent 0.135.0
|
||||
Sep 27 12:27:58 demo-hp felhom-agent[995644]: time=2026-09-27T12:27:58.210+02:00 level=WARN msg="signedjobs: signed op COMPLETED" job=94658c4370ef2c79 op=agent_update
|
||||
Sep 27 12:28:02 demo-hp felhom-agent[998480]: time=2026-09-27T12:28:02.239+02:00 level=WARN msg="selfupdate: new version running — dwelling before commit" version=0.135.0 prev=0.134.0 dwell=1m0s
|
||||
Sep 27 12:29:02 demo-hp sudo[1003468]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/local/sbin/felhom-selfupdate-guarded commit
|
||||
Sep 27 12:29:02 demo-hp felhom-agent[998480]: time=2026-09-27T12:29:02.260+02:00 level=WARN msg="selfupdate: update committed" version=0.135.0 wrapper=""
|
||||
@@ -0,0 +1,6 @@
|
||||
# D1 — R-689, agent v0.135.0
|
||||
|
||||
Fix: `backup/runner.go` `guestBackupArchive`. Red-proof `RP-r689-golden-picked.txt`. Released by `scripts/release-agent.sh`
|
||||
(tag `v0.135.0` at `d4be12c`, sha256 `ad4e75f1…fd4c3`, verified by download; NOT vouched). Delivered by signed `agent_update`
|
||||
to both demo hosts (`D1-signed-delivery.txt`): demo-felhom committed 12:22:53 CEST, demo-hp 12:29:02 CEST. The first
|
||||
scheduled restore-test evaluation on demo-hp after the update is due ~18:28 CEST: `D1-cycle-demo-hp.txt` (read later).
|
||||
@@ -0,0 +1,5 @@
|
||||
# D2 — R-695: single-flight file-browser sync; no empty kept folder listed or bound
|
||||
|
||||
Tests `TestR695_QueuedSyncsCoalesceIntoOne` (6 requests → 2 syncs; a later request is never dropped) and
|
||||
`TestR695_AnEmptyDatedKeptFolderIsNeverListed`; both red-proofed (`RP-r695.txt`). Not reproduced live (the original was a
|
||||
same-second race).
|
||||
@@ -0,0 +1,6 @@
|
||||
# D3 — R-691: the kept view reads a folder another user owns; its name follows the language
|
||||
|
||||
Decision (CC unattended, `07` §6.5): the file browser joins the OWNING GROUP of a group-readable kept folder (`group_add`;
|
||||
never gid 0, never its own 1000); binds stay `:ro`; nothing on disk changes. A language switch re-syncs the file browser.
|
||||
Tests `TestR691_KeptReadGroups`, `TestR691_ALanguageSwitchResyncsTheFileBrowser`, red-proofed (`RP-r691.txt`).
|
||||
NOT live-proven: no nextcloud kept folder existed on 9202 this session. NOT built: (2) Load from the off-site copy.
|
||||
@@ -0,0 +1,4 @@
|
||||
# 9202 before: gitea.dooplex.hu/admin/felhom-controller:0.275.0-rc1
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.275.0
|
||||
# 9202 after: gitea.dooplex.hu/admin/felhom-controller:0.275.0 Up 6 seconds (healthy)
|
||||
2026/09/27 10:14:16 main.go:337: [INFO] felhom-controller 0.275.0 starting (customer: demo-hp, domain: enkisfelhom.hu)
|
||||
@@ -0,0 +1,8 @@
|
||||
# global floor 0.275.0 (declared MinAgent 0.131.0) — 2026-09-27T10:14:31Z
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /configuration?flash=floor_set
|
||||
2026-09-27T10:14:44Z
|
||||
demo-hp: gitea.dooplex.hu/admin/felhom-controller:0.275.0
|
||||
demo-felhom: gitea.dooplex.hu/admin/felhom-controller:0.275.0
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.275.0 Up 4 seconds (health: starting)
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.275.0 Up 8 seconds (healthy)
|
||||
@@ -0,0 +1,27 @@
|
||||
12:56:12 [X] stop -> 200 {'ok': True, 'message': 'Stack docmost stop completed'}
|
||||
12:56:44 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'docmost', 'volumes_removed': ['docmost_docmost_postgres_data', 'docmost_docmost_redis_data', 'docmost_docmost_storage']
|
||||
12:56:52 [X] after remove: deployed=False leftovers='/opt/docker/stacks/docmost'
|
||||
12:56:55 [X] stop -> 200 {'ok': True, 'message': 'Stack tandoor stop completed'}
|
||||
12:57:27 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'tandoor', 'volumes_removed': ['tandoor_tandoor_media', 'tandoor_tandoor_postgres_data', 'tandoor_tandoor_static'], 'hdd
|
||||
12:57:35 [X] after remove: deployed=False leftovers='/opt/docker/stacks/tandoor'
|
||||
12:57:38 [X] stop -> 200 {'ok': True, 'message': 'Stack adventurelog stop completed'}
|
||||
12:58:10 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'adventurelog', 'volumes_removed': ['adventurelog_adventurelog_media', 'adventurelog_adventurelog_postgres_data'], 'hdd_
|
||||
12:58:18 [X] after remove: deployed=False leftovers='/opt/docker/stacks/adventurelog'
|
||||
sync_interval: 15m
|
||||
token: <redacted>
|
||||
username: ""
|
||||
hub:
|
||||
0
|
||||
|
||||
drill main now f1a7d6c, live main f1a7d6c
|
||||
# 9202 after teardown 2026-09-27T10:58:55Z
|
||||
repo_url: https://gitea.dooplex.hu/admin/app-catalog-felhom.eu.git
|
||||
0
|
||||
felhom-controller gitea.dooplex.hu/admin/felhom-controller:0.275.0 Up 25 seconds (healthy)
|
||||
filebrowser gtstef/filebrowser:1.3.3-stable Up 45 hours (healthy)
|
||||
paperless-postgres postgres:18-alpine Up About an hour (healthy)
|
||||
paperless-redis redis:7-alpine Up About an hour (healthy)
|
||||
paperless-webserver ghcr.io/paperless-ngx/paperless-ngx:2.20.15 Up About an hour (healthy)
|
||||
privatebin privatebin/pdo:2.0.6 Up 10 hours (healthy)
|
||||
traefik traefik:v3.6.7 Up 2 days
|
||||
paperless-ngx_paperless_postgres_data.pre-update-20260927T094421Z
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
"""benchq.py <queue-name> <app> <svc=ref>[,<svc=ref>] [<app> <moves> ...]
|
||||
|
||||
Runs `upgrade-test.py --move` on bench LXC 9401 for each app IN ORDER, then copies that edge's
|
||||
evidence OFF the bench into apps/<app>/bench/ before starting the next (R-320: the evidence leaves
|
||||
the machine at the end of the phase that made it). One line per finished edge in benchq-<queue>.txt.
|
||||
"""
|
||||
import json, os, subprocess, sys, time
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
BENCH = "/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/a061fcea-2c08-478c-9fd6-991dc8e748f0/scratchpad/bench.sh"
|
||||
q = sys.argv[1]
|
||||
args = sys.argv[2:]
|
||||
out = open(os.path.join(HERE, "..", os.environ.get("BQ", "B"), f"benchq-{q}.txt"), "a", buffering=1)
|
||||
for i in range(0, len(args), 2):
|
||||
app, moves = args[i], args[i + 1].split(",")
|
||||
label = app
|
||||
if "@" in app: # romm@engine: a second edge of one app gets its own folder
|
||||
app, tag = app.split("@", 1)
|
||||
label = f"{app}-{tag}"
|
||||
t0 = time.time()
|
||||
out.write(f"{time.strftime('%H:%M:%S')} START {app} {moves}\n")
|
||||
pre = f"cd /opt/upg && [ -d evidence/MV-{app} ] && mv evidence/MV-{app} evidence/MV-{app}-$(date +%s); "
|
||||
subprocess.run([BENCH], input=pre, capture_output=True, text=True, timeout=120)
|
||||
cmd = (f"cd /opt/upg && timeout 2400 python3 upgrade-test.py --soak 600 --move {app} {' '.join(moves)} "
|
||||
f"> /opt/upg/MV-{app}.log 2>&1; echo rc=$?")
|
||||
r = subprocess.run([BENCH], input=cmd, capture_output=True, text=True, timeout=2700)
|
||||
dest = os.path.join(HERE, "..", os.environ.get("BQ", "B"), "apps", label, "bench")
|
||||
os.makedirs(dest, exist_ok=True)
|
||||
pull = (f"cd /opt/upg && tar czf /tmp/ev-{app}.tgz MV-{app}.log evidence/MV-{app} 2>/dev/null; "
|
||||
f"base64 -w0 /tmp/ev-{app}.tgz")
|
||||
r2 = subprocess.run([BENCH], input=pull, capture_output=True, text=True, timeout=600)
|
||||
import base64, io, tarfile
|
||||
try:
|
||||
tarfile.open(fileobj=io.BytesIO(base64.b64decode(r2.stdout.strip()))).extractall(dest)
|
||||
except Exception as e:
|
||||
out.write(f" evidence pull FAILED for {app}: {e}\n")
|
||||
v = {}
|
||||
try:
|
||||
v = json.load(open(os.path.join(dest, "evidence", f"MV-{app}", "verdict.json")))
|
||||
except Exception:
|
||||
pass
|
||||
mem = v.get("memory") or {}
|
||||
peaks = {n: c.get("peak_pct") for n, c in (mem.get("containers") or {}).items()}
|
||||
out.write(f"{time.strftime('%H:%M:%S')} DONE {app} {r.stdout.strip()} verdict={v.get('verdict')} "
|
||||
f"read_before={v.get('seed_read_before')} read_after={v.get('seed_read_after')} "
|
||||
f"abort={v.get('abort')} marks={v.get('marks')} peaks={peaks} "
|
||||
f"detail={str(v.get('abort_detail'))[:160]!r} ({round(time.time()-t0)}s)\n")
|
||||
out.write(f"{time.strftime('%H:%M:%S')} QUEUE {q} FINISHED\n")
|
||||
@@ -0,0 +1,47 @@
|
||||
"""boxmove.py <phase> <app> <sub> [<svc> <from> <to> <fmj> <tmj>] — Part B's BOX venue on 9202 (drill catalog):
|
||||
prep: deploy (reuse if installed), seed through the app's own route, read it back (C1)
|
||||
move: drill commit with the mark → sync → the guarded Update → engine state + seed read back → box verdict JSON
|
||||
Evidence: B/apps/<app>/box/."""
|
||||
import json, os, sys, time, subprocess
|
||||
import walk as w, fixtures
|
||||
phase, app, sub = sys.argv[1:4]
|
||||
EVD = f"{w.EV}/B/apps/{app}/box"; os.makedirs(EVD, exist_ok=True)
|
||||
TOK = w.SC + "/seed-tokens.json"
|
||||
log = open(f"{EVD}/{phase}.txt", "a", buffering=1)
|
||||
def say(*a):
|
||||
w.say(*a); log.write(" ".join(map(str, a)) + "\n")
|
||||
w.login()
|
||||
toks = json.load(open(TOK)) if os.path.exists(TOK) else {}
|
||||
if phase == "prep":
|
||||
say(f"deploy/reuse {app}: {w.deploy(app, sub)}")
|
||||
toks[app] = fixtures.FIXTURES[app].seed(w, sub, say)
|
||||
json.dump(toks, open(TOK, "w"), default=str); os.chmod(TOK, 0o600)
|
||||
say(f"C1 seed reads back BEFORE: {fixtures.FIXTURES[app].verify(w, sub, toks[app], say)}")
|
||||
else:
|
||||
svc, frm, to, fmj, tmj = sys.argv[4:9]
|
||||
st = w.stack(app); before = (st.get("app_config") or {}).get("pinned_images")
|
||||
pg = lambda: w.guest(f"docker exec {svc} sh -c 'cat $PGDATA/PG_VERSION' 2>&1").strip()
|
||||
say(f"before: pinned={before} PG_VERSION={pg()}")
|
||||
r = subprocess.run([sys.executable, os.path.join(os.path.dirname(__file__), "drillmove.py"), app, svc, frm, to, fmj, tmj], capture_output=True, text=True)
|
||||
say("drill:", r.stdout.strip().splitlines()[0] if r.stdout else r.stderr[-300:])
|
||||
w.sync_rescan(app, to)
|
||||
since = w.guest("date -u +%Y-%m-%dT%H:%M:%SZ").strip()
|
||||
res = w.press_update(app, poll=1, cap_s=1800)
|
||||
for p in res.get("phases", []):
|
||||
log.write(f" phase +{p['t']}s {p['phase']} | err={p['error']}\n")
|
||||
time.sleep(10)
|
||||
after_pg = pg(); read = fixtures.FIXTURES[app].verify(w, sub, toks[app], say)
|
||||
conv = w.guest(f"docker logs --since {since} felhom-controller 2>&1 | grep -E 'update {app}|CONVERT' | grep -v DEBUG | cut -c1-400")
|
||||
log.write(conv + "\n")
|
||||
line = next((l for l in conv.splitlines() if "CONVERTED" in l), "")
|
||||
st = w.stack(app)
|
||||
verdict = {"app": app, "venue": "box 9202 (drill catalog, controller 0.275.0-rc1), the product's guarded Update",
|
||||
"from": before, "to": (st.get("app_config") or {}).get("pinned_images"),
|
||||
"verdict": "proven" if (res.get("final_phase") == "done" and read and after_pg == str(tmj)) else "failed",
|
||||
"seed_read_before": True, "seed_read_after": read, "healthy_after": st.get("state") == "running",
|
||||
"engine_conversion": {"service": svc, "engine": "postgres", "from": int(fmj), "to": int(tmj),
|
||||
"result": "converted" if line else "not-seen", "controller_line": line.split("] ", 2)[-1] if line else ""},
|
||||
"duration_s": res.get("duration_s"), "measured_at": since,
|
||||
"evidence": f"felhom.eu/documentation/audits/version-travel-2026-09-26/B/apps/{app}/box/move.txt"}
|
||||
json.dump(verdict, open(f"{EVD}/box-verdict-{app}.json", "w"), indent=2)
|
||||
say(f"RESULT final_phase={res.get('final_phase')} PG_VERSION={after_pg} seed_after={read} verdict={verdict['verdict']}")
|
||||
@@ -0,0 +1,39 @@
|
||||
"""drillmove.py <app> <svc> <from-ref> <to-ref> <from-major> <to-major>
|
||||
DRILL-ONLY commit: move one PostgreSQL service in the drill catalog and add the ladder entry that carries the
|
||||
engine_conversion mark, so the box (9202) can prove the conversion through its own guarded Update. The live
|
||||
catalog's entry is written later ONLY by `upgrade-test.py --write-ladder` from both verdicts."""
|
||||
import json, re, subprocess, sys
|
||||
D = "/mnt/5_hdd/felhom.eu/drill/app-catalog-drill"
|
||||
app, svc, frm, to, fmj, tmj = sys.argv[1:7]
|
||||
subprocess.run(["git", "-C", D, "pull", "-q", "--rebase", "origin", "main"], check=True)
|
||||
comp = f"{D}/templates/{app}/docker-compose.yml"
|
||||
fy = f"{D}/templates/{app}/.felhom.yml"
|
||||
s = open(comp).read()
|
||||
assert f"image: {frm}" in s, "from ref not in compose"
|
||||
pins = {}
|
||||
cur = None
|
||||
for line in s.splitlines():
|
||||
m = re.match(r"^ ([a-z0-9-]+):\s*$", line)
|
||||
if m: cur = m.group(1)
|
||||
m = re.match(r"^\s+image:\s*(\S+)", line)
|
||||
if m and cur: pins[cur] = m.group(1)
|
||||
s = s.replace(f"image: {frm}", f"image: {to}")
|
||||
if int(tmj) >= 18: # 18+ wants the volume at /var/lib/postgresql (09 decision 37)
|
||||
s = re.sub(r"(-\s+[A-Za-z0-9_.-]*postgres[A-Za-z0-9_.-]*:)/var/lib/postgresql/data(\s*)$", r"\1/var/lib/postgresql\2", s, flags=re.M)
|
||||
open(comp, "w").write(s)
|
||||
top = dict(pins); top[svc] = to
|
||||
entry = {"from": pins, "to": top, "verdict": "proven", "tested_at": "DRILL", "harness_version": 4,
|
||||
"evidence": "DRILL (box proof in progress)", "marks": {"files_may_change": False, "needs_person": None, "memory_tight": False},
|
||||
"engine_conversion": {"service": svc, "engine": "postgres", "from": int(fmj), "to": int(tmj)}}
|
||||
f = open(fy).read()
|
||||
line = " - " + json.dumps(entry) + "\n"
|
||||
if "update_ladder:" in f:
|
||||
f = f.replace("update_ladder:\n", "update_ladder:\n", 1)
|
||||
f = f.rstrip("\n") + "\n" + line if f.rstrip("\n").endswith("}") else f + line
|
||||
else:
|
||||
f = f.rstrip("\n") + "\nupdate_ladder:\n" + line
|
||||
open(fy, "w").write(f)
|
||||
subprocess.run(["git", "-C", D, "commit", "-q", "-am", f"DRILL {app}: {svc} {frm} -> {to} with the engine_conversion mark (box proof)"], check=True)
|
||||
subprocess.run(["git", "-C", D, "push", "-q", "origin", "main"], check=True, capture_output=True)
|
||||
print(subprocess.run(["git", "-C", D, "log", "--oneline", "-1"], capture_output=True, text=True).stdout.strip())
|
||||
print(subprocess.run(["git", "-C", D, "show", "--stat", "HEAD"], capture_output=True, text=True).stdout[-300:])
|
||||
@@ -1075,6 +1075,10 @@ FIXTURES = {
|
||||
"adventurelog": Django("adventurelog", "travel", "/admin/login/"),
|
||||
"tandoor": Django("tandoor", "recipes", "/accounts/login/",
|
||||
python="/opt/recipes/venv/bin/python", workdir="/opt/recipes"),
|
||||
# 2026-09-26 (version-travel Part B): paperless-ngx is Django too — `manage.py` in its WORKDIR
|
||||
# (/usr/src/paperless/src), python3 on PATH; measured on 9202 (the readback answered False for a
|
||||
# username that cannot exist) before this line was written.
|
||||
"paperless-ngx": Django("paperless-webserver", "paperless", "/accounts/login/"),
|
||||
"privatebin": PrivateBin(),
|
||||
"docmost": Docmost(),
|
||||
"bookstack": BookStack(),
|
||||
|
||||
Reference in New Issue
Block a user