Files
felhom.eu/documentation/audits/update-night-2026-09-21/batchC.log
T
admin 9c69b3ff07
gates / gates (push) Successful in 27s
Update night: Phases 2-4 evidence — both engines, the unattended HOLD, and five new findings
Evidence off the machine at the end of the phases that produced it (R-320). Teardown follows.

PHASE 2 — the two database engines, through the REAL Update button:
- MariaDB 11.6 -> 12.3 on nextcloud: PROVEN, and pressed through the button for the first time.
  All four SPIKE-r459 observables: the datadir's own record moved 11.6.2 -> 12.3.3; the engine
  itself says "already upgraded ... no need to run mariadb-upgrade again"; the entrypoint says
  "Major version upgrade detected ... Check required!" and then STARTED and FINISHED it (not the
  `skipped due to $MARIADB_AUTO_UPGRADE` line R-459 feared); and the engine took its own
  pre-upgrade backup, 631 905 B. The seeded Nextcloud account read back.
- PostgreSQL 16 -> 17 on docmost: FAILED exactly as R-463 predicted and nobody had measured.
  5.1 s to held; the pin named 17 while nothing ran; the restore brought it back in 29.1 s.
  The engine's REFUSAL LINE was destroyed by failAndHold before any probe could read it, so it
  was REPRODUCED INDEPENDENTLY with a control on every step (R-320).

PHASE 3 — the bad days. B1 produced THE UNATTENDED HOLD, which this project has never had: the
caller pressed once with nobody watching, the app held after 312.9 s, and passes 2 and 3 pressed
nothing. B2 put the pin back on a pull failure in 1.0 s. B3 refused `busy` six times. B4 showed
there is NO single-flight — 5 of 5 updates ran at once and all ended honest. B5 cut the power in
`backing-up` and the box recovered itself and said so. B7 refused under the 2 GB floor. B9 found
R-458's risk narrower than the row states.

PHASE 4 — every badge on the box is TRUE, and the held app answers all four of Q4's questions.

FINDINGS, five new and three corrections to existing rows. The one that matters: R-618 is P1 —
two templates name a health probe the app does not answer, and because the guarded update waits
on that same probe, a SUCCESSFUL update ends by STOPPING a working app. Measured: tandoor served
HTTP 200 on the new version at four samples across five minutes and was then stopped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-21 22:13:57 +02:00

305 lines
27 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
################ 21:02:25 grafana
21:02:25 ==== grafana: grafana/grafana:13.1.0 -> grafana/grafana:13.2.2 (sub=grafana, class=other)
21:02:25 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['GF_SECURITY_ADMIN_PASSWORD']
21:02:25 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:03:16 [1] deployed, controller state=running, pinned={'grafana': 'grafana/grafana:13.1.0'}
21:03:18 [2] seeding through the app's own front door
21:03:18 grafana: create folder http=200
21:03:18 [3] control C1 — reading the seed back BEFORE the update
21:03:18 grafana: readback of the seeded folder http=200 ok=True
21:03:18 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:04:19 [4] backup idle; last=None
21:04:20 [5] drill commit f36b5183055e: grafana grafana/grafana:13.1.0 -> grafana/grafana:13.2.2 (push rc=0)
21:04:24 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:04:24 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:04:24 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:04:25 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:04:26 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
21:04:44 + 19.5s phase=starting label=Indítás az új verzióval… err=None hold=None
21:04:46 + 21.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:04:51 + 26.7s phase=done label=Frissítve err=None hold=None
21:04:51 [7] reading the seed back AFTER the update
21:04:56 grafana: readback of the seeded folder http=200 ok=True
21:04:59 [8] pinned = {'grafana': 'grafana/grafana:13.2.2'}
21:04:59 [8] installed = {'grafana': 'grafana/grafana:13.2.2'}
21:04:59 [8] compose = ['image: grafana/grafana:13.2.2']
21:04:59 [8] inspect = ['grafana grafana/grafana:13.2.2 running=true restarts=0']
21:04:59 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/grafana/verdict.json
21:05:07 [X] stop -> 200 {'ok': True, 'message': 'Stack grafana stop completed'}
21:05:13 [X] remove -> 200 {'ok': True, 'data': {'removed': 'grafana', 'volumes_removed': ['grafana_grafana_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [],
21:05:20 [X] after remove: deployed=False leftovers='/opt/docker/stacks/grafana'
################ 21:05:20 grafana done rc=0
################ 21:05:20 vikunja
21:05:20 ==== vikunja: vikunja/vikunja:2.3.0 -> vikunja/vikunja:2.6.0 (sub=tasks, class=other)
21:05:21 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:05:26 [1] deployed, controller state=running, pinned={'vikunja': 'vikunja/vikunja:2.3.0'}
21:05:28 [2] seeding through the app's own front door
21:05:28 vikunja: register http=200
21:05:28 vikunja: create project http=405
21:05:28 vikunja: project refused {"message":"Method Not Allowed"}
21:05:28 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/vikunja/verdict.json
################ 21:05:28 vikunja done rc=0
################ 21:05:28 opengist
21:05:28 ==== opengist: ghcr.io/thomiceli/opengist:1.13 -> ghcr.io/thomiceli/opengist:1.15 (sub=gist, class=other)
21:05:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:05:44 [1] deployed, controller state=running, pinned={'opengist': 'ghcr.io/thomiceli/opengist:1.13'}
21:05:46 [2] seeding through the app's own front door
21:05:46 opengist: /register http=500
21:05:46 opengist: refused
<!DOCTYPE html>
<html lang="en" class="h-full " data-theme="auto">
<head>
<meta charset="UTF-8" />
<base href="https://gist.enkisfelhom.hu" />
<script>
window.opengist_bas
21:05:46 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/opengist/verdict.json
################ 21:05:46 opengist done rc=0
################ 21:05:46 papra
21:05:46 ==== papra: ghcr.io/papra-hq/papra:26.6.1-rootless -> ghcr.io/papra-hq/papra:26.6.2-rootless (sub=papra, class=other)
21:05:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:06:37 [1] deployed, controller state=running, pinned={'papra': 'ghcr.io/papra-hq/papra:26.6.1-rootless'}
21:06:39 [2] seeding through the app's own front door
21:06:40 papra: sign-up http=200
21:06:40 [3] control C1 — reading the seed back BEFORE the update
21:06:40 papra: sign-in as the seeded account http=200 ok=True
21:06:40 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:07:40 [4] backup idle; last=None
21:07:41 [5] drill commit b29623bf53d1: papra ghcr.io/papra-hq/papra:26.6.1-rootless -> ghcr.io/papra-hq/papra:26.6.2-rootless (push rc=0)
21:07:46 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:07:46 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:07:46 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:07:46 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:07:47 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
21:08:29 + 43.0s phase=starting label=Indítás az új verzióval… err=None hold=None
21:08:31 + 45.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:08:47 + 60.5s phase=done label=Frissítve err=None hold=None
21:08:47 [7] reading the seed back AFTER the update
21:08:47 papra: sign-in as the seeded account http=200 ok=True
21:08:50 [8] pinned = {'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}
21:08:50 [8] installed = {'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}
21:08:50 [8] compose = ['image: ghcr.io/papra-hq/papra:26.6.2-rootless']
21:08:50 [8] inspect = ['papra ghcr.io/papra-hq/papra:26.6.2-rootless running=true restarts=0']
21:08:50 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/papra/verdict.json
21:08:51 [X] stop -> 200 {'ok': True, 'message': 'Stack papra stop completed'}
21:08:56 [X] remove -> 200 {'ok': True, 'data': {'removed': 'papra', 'volumes_removed': ['papra_papra_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_
21:09:03 [X] after remove: deployed=False leftovers='/opt/docker/stacks/papra'
################ 21:09:03 papra done rc=0
################ 21:09:03 romm
21:09:03 ==== romm: rommapp/romm:5.0.0 -> rommapp/romm:5.3.0 (sub=arcade, class=db-mariadb)
21:09:06 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/romm']
21:09:06 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
21:09:06 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:09:26 [1] deployed, controller state=degraded, pinned=None
21:09:26 [1] NOTE: the controller's own state is 'degraded', not 'running' — recorded, not treated as a failure; the fixture's front-door wait is the real gate
21:09:28 [2] seeding through the app's own front door
21:10:14 romm: POST /api/users http=403 :: CSRF token verification failed
21:10:14 romm: POST /api/users http=403 :: CSRF token verification failed
21:10:14 romm: no unauthenticated route created the first account
21:10:14 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/romm/verdict.json
################ 21:10:14 romm done rc=0
################ 21:10:14 home-assistant
21:10:14 ==== home-assistant: ghcr.io/home-assistant/home-assistant:2026.7.2 -> ghcr.io/home-assistant/home-assistant:2026.9.3 (sub=ha, class=other)
21:10:15 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:12:05 [1] deployed, controller state=running, pinned={'home-assistant': 'ghcr.io/home-assistant/home-assistant:2026.7.2'}
21:12:08 [2] seeding through the app's own front door
21:12:08 home-assistant: /api/onboarding/users http=200
21:12:08 [3] control C1 — reading the seed back BEFORE the update
21:12:09 home-assistant: login as the seeded owner ok=True
21:12:09 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:13:14 [4] backup idle; last=None
21:13:15 [5] drill commit 15a6d080f34a: home-assistant ghcr.io/home-assistant/home-assistant:2026.7.2 -> ghcr.io/home-assistant/home-assistant:2026.9.3 (push rc=0)
21:13:19 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:13:19 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:13:20 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:13:20 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:13:21 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
21:14:42 + 82.0s phase=starting label=Indítás az új verzióval… err=None hold=None
21:14:48 + 88.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:15:03 + 103.6s phase=done label=Frissítve err=None hold=None
21:15:03 [7] reading the seed back AFTER the update
21:15:04 home-assistant: login as the seeded owner ok=True
21:15:06 [8] pinned = {'home-assistant': 'ghcr.io/home-assistant/home-assistant:2026.9.3'}
21:15:06 [8] installed = {'home-assistant': 'ghcr.io/home-assistant/home-assistant:2026.9.3'}
21:15:06 [8] compose = ['image: ghcr.io/home-assistant/home-assistant:2026.9.3']
21:15:06 [8] inspect = ['home-assistant ghcr.io/home-assistant/home-assistant:2026.9.3 running=true restarts=0']
21:15:06 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/home-assistant/verdict.json
21:15:12 [X] stop -> 200 {'ok': True, 'message': 'Stack home-assistant stop completed'}
21:15:17 [X] remove -> 200 {'ok': True, 'data': {'removed': 'home-assistant', 'volumes_removed': ['home-assistant_homeassistant_config'], 'hdd_paths_removed': [], 'hdd
21:15:25 [X] after remove: deployed=False leftovers='/opt/docker/stacks/home-assistant'
################ 21:15:25 home-assistant done rc=0
################ 21:15:25 tandoor
21:15:25 ==== tandoor: ghcr.io/tandoorrecipes/recipes:2.6.13 -> ghcr.io/tandoorrecipes/recipes:2.6.15 (sub=recipes, class=db-postgres)
21:15:25 [1] tandoor already deployed — reusing
21:15:27 [2] seeding through the app's own front door
21:15:37 tandoor: createsuperuser :: Running django-vite in production mode (no HMR) Superuser created successfully.
21:15:40 tandoor: seeded superuser drill316903
21:15:40 [3] control C1 — reading the seed back BEFORE the update
21:15:46 tandoor: readback of the seeded account found=True
21:15:46 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:16:42 [4] backup idle; last=None
21:16:43 [5] drill commit c7477d1fb921: tandoor ghcr.io/tandoorrecipes/recipes:2.6.13 -> ghcr.io/tandoorrecipes/recipes:2.6.15 (push rc=0)
21:16:47 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:16:47 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:16:47 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:16:47 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:16:48 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
21:17:42 + 54.3s phase=starting label=Indítás az új verzióval… err=None hold=None
21:17:46 + 58.4s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:22:49 + 361.9s phase=failed label=A frissítés nem sikerült err=A(z) tandoor frissítése 2026-09-21 21:22-kor nem sikerült, és az alkalmazás nem indult el az új verzióval. Az alkalmazás biztonsági okból leállítva marad, hogy az adatai ne sérüljenek. Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:15 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza. hold=A(z) tandoor frissítése 2026-09-21 21:22-kor nem sikerült, és az alkalmazás nem indult el az új verzióval. Az alkalmazás biztonsági okból leállítva marad, hogy az adatai ne sérüljenek. Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:15 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.
21:22:49 [7] reading the seed back AFTER the update
21:22:52 tandoor: READBACK UNUSABLE — a username that cannot exist did not read as absent (None) :: Error response from daemon: No such container: tandoor
21:22:54 [8] pinned = {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'}
21:22:54 [8] installed = {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.13', 'tandoor-postgres': 'postgres:16-alpine'}
21:22:54 [8] compose = ['image: ghcr.io/tandoorrecipes/recipes:2.6.15', 'image: postgres:16-alpine']
21:22:54 [8] inspect = []
21:22:54 [9] verdict failed -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/tandoor/verdict.json
################ 21:22:54 tandoor done rc=0
################ 21:22:54 mealie
21:22:54 ==== mealie: ghcr.io/mealie-recipes/mealie:v3.20.1 -> ghcr.io/mealie-recipes/mealie:v3.27.0 (sub=mealie, class=db-postgres)
21:22:54 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:24:05 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.20.1'}
21:24:07 [2] seeding through the app's own front door
21:24:08 mealie: create recipe http=201
21:24:08 [3] control C1 — reading the seed back BEFORE the update
21:24:09 mealie: readback of the seeded recipe http=200 ok=True
21:24:09 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:24:59 [4] backup idle; last=None
21:25:00 [5] drill commit 91e4bb97212e: mealie ghcr.io/mealie-recipes/mealie:v3.20.1 -> ghcr.io/mealie-recipes/mealie:v3.27.0 (push rc=0)
21:25:04 [5] badge HU: [{'title': 'Ez az alkalmazás a legfrissebb elérhető változatot futtatja.', 'text': 'Naprakész'}]
21:25:04 [5] badge EN: [{'title': 'This app is running the newest version available.', 'text': 'Up to date'}]
21:25:04 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:25:04 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:25:05 + 1.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:25:06 + 2.1s phase=done label=Frissítve err=None hold=None
21:25:08 [7] reading the seed back AFTER the update
21:25:09 mealie: readback of the seeded recipe http=200 ok=True
21:25:11 [8] pinned = {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.20.1'}
21:25:11 [8] installed = {'mealie': 'ghcr.io/mealie-recipes/mealie:v3.20.1'}
21:25:11 [8] compose = ['image: ghcr.io/mealie-recipes/mealie:v3.20.1']
21:25:11 [8] inspect = ['mealie ghcr.io/mealie-recipes/mealie:v3.20.1 running=true restarts=0']
21:25:11 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/mealie/verdict.json
21:25:13 [X] stop -> 200 {'ok': True, 'message': 'Stack mealie stop completed'}
21:25:18 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'mealie', 'volumes_removed': ['mealie_mealie_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm
21:25:26 [X] after remove: deployed=False leftovers='/opt/docker/stacks/mealie'
################ 21:25:26 mealie done rc=0
################ 21:25:26 vikunja
21:25:26 ==== vikunja: vikunja/vikunja:2.3.0 -> vikunja/vikunja:2.6.0 (sub=tasks, class=other)
21:25:26 [1] vikunja already deployed — reusing
21:25:28 [2] seeding through the app's own front door
21:25:28 vikunja: register http=200
21:25:28 vikunja: create project http=201
21:25:28 [3] control C1 — reading the seed back BEFORE the update
21:25:29 vikunja: readback of the seeded project http=200 ok=True
21:25:29 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:26:14 [4] backup idle; last=None
21:26:15 [5] drill commit 98eda8839128: vikunja vikunja/vikunja:2.3.0 -> vikunja/vikunja:2.6.0 (push rc=0)
21:26:19 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:26:19 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:26:20 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:26:20 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:26:21 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
21:26:24 + 4.1s phase=starting label=Indítás az új verzióval… err=None hold=None
21:26:25 + 5.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:26:44 + 24.6s phase=done label=Frissítve err=None hold=None
21:26:44 [7] reading the seed back AFTER the update
21:26:45 vikunja: readback of the seeded project http=200 ok=True
21:26:47 [8] pinned = {'vikunja': 'vikunja/vikunja:2.6.0'}
21:26:47 [8] installed = {'vikunja': 'vikunja/vikunja:2.6.0'}
21:26:47 [8] compose = ['image: vikunja/vikunja:2.6.0']
21:26:47 [8] inspect = ['vikunja vikunja/vikunja:2.6.0 running=true restarts=0']
21:26:47 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/vikunja/verdict.json
21:26:48 [X] stop -> 200 {'ok': True, 'message': 'Stack vikunja stop completed'}
21:26:53 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'vikunja', 'volumes_removed': ['vikunja_vikunja_data', 'vikunja_vikunja_db'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [
21:27:00 [X] after remove: deployed=False leftovers='/opt/docker/stacks/vikunja'
################ 21:27:00 vikunja done rc=0
################ 21:27:00 opengist
21:27:01 ==== opengist: ghcr.io/thomiceli/opengist:1.13 -> ghcr.io/thomiceli/opengist:1.15 (sub=gist, class=other)
21:27:01 [1] opengist already deployed — reusing
21:27:03 [2] seeding through the app's own front door
21:27:03 opengist: /register (with its own _csrf) http=302
21:27:03 opengist: create gist http=401
21:27:03 opengist: gist refused {"message":"Bad crendentials","status":401}
21:27:03 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/opengist/verdict.json
################ 21:27:03 opengist done rc=0
################ 21:27:03 romm
21:27:03 ==== romm: rommapp/romm:5.0.0 -> rommapp/romm:5.3.0 (sub=arcade, class=db-mariadb)
21:27:05 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/romm']
21:27:05 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
21:27:05 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:27:56 [1] deployed, controller state=running, pinned={'romm': 'rommapp/romm:5.0.0', 'romm-db': 'mariadb:11.4', 'romm-redis': 'redis:7-alpine'}
21:27:58 [2] seeding through the app's own front door
21:28:02 romm: POST /api/users http=201
21:28:02 [3] control C1 — reading the seed back BEFORE the update
21:28:04 romm: login as the seeded user http=200 ok=True
21:28:04 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:29:04 [4] backup idle; last=None
21:29:05 [5] drill commit f72102b7217b: romm rommapp/romm:5.0.0 -> rommapp/romm:5.3.0 (push rc=0)
21:29:10 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:29:10 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:29:10 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:29:10 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:29:11 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
21:29:23 + 13.4s phase=starting label=Indítás az új verzióval… err=None hold=None
21:29:29 + 19.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:30:10 + 60.5s phase=done label=Frissítve err=None hold=None
21:30:10 [7] reading the seed back AFTER the update
21:30:40 romm: login as the seeded user http=200 ok=True
21:30:43 [8] pinned = {'romm': 'rommapp/romm:5.3.0', 'romm-db': 'mariadb:11.4', 'romm-redis': 'redis:7-alpine'}
21:30:43 [8] installed = {'romm': 'rommapp/romm:5.3.0', 'romm-db': 'mariadb:11.4', 'romm-redis': 'redis:7-alpine'}
21:30:43 [8] compose = ['image: rommapp/romm:5.3.0', 'image: mariadb:11.4', 'image: redis:7-alpine']
21:30:43 [8] inspect = ['romm rommapp/romm:5.3.0 running=true restarts=0', 'romm-db mariadb:11.4 running=true restarts=0', 'romm-redis redis:7-alpine running=true restarts=0']
21:30:43 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/romm/verdict.json
21:30:53 [X] stop -> 200 {'ok': True, 'message': 'Stack romm stop completed'}
21:30:59 [X] remove (with drive data) -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/romm tárhely jelenleg nem elérhető — az alkalmazás nem távolítható el, amíg a meghajtó viss
21:30:59 [X] refused because the drive path cannot be resolved (R-442, fail-closed and right) — removing the app and KEEPING the drive data instead
21:30:59 [X] remove (keeping drive data) -> 200 {'ok': True, 'data': {'removed': 'romm', 'volumes_removed': ['romm_romm_config', 'romm_romm_db_data', 'romm_romm_redis_data'], 'hdd_paths_removed': [], 'hdd_pat
21:31:06 [X] after remove: deployed=False leftovers='/opt/docker/stacks/romm'
################ 21:31:06 romm done rc=0
################ 21:31:06 mealie
21:31:06 ==== mealie: ghcr.io/mealie-recipes/mealie:v3.20.1 -> ghcr.io/mealie-recipes/mealie:v3.27.0 (sub=mealie, class=db-postgres)
21:31:07 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:32:17 [1] deployed, controller state=running, pinned={'mealie': 'ghcr.io/mealie-recipes/mealie:v3.27.0'}
21:32:20 [2] seeding through the app's own front door
21:32:21 mealie: create recipe http=201
21:32:21 [3] control C1 — reading the seed back BEFORE the update
21:32:21 mealie: readback of the seeded recipe http=200 ok=True
21:32:21 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:33:06 [4] backup idle; last=None
21:33:06 [5] FROM ref not found in compose: ghcr.io/mealie-recipes/mealie:v3.20.1
21:33:06 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/mealie/verdict.json
################ 21:33:06 mealie done rc=0
################ 21:33:06 opengist
21:33:06 ==== opengist: ghcr.io/thomiceli/opengist:1.13 -> ghcr.io/thomiceli/opengist:1.15 (sub=gist, class=other)
21:33:07 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:33:17 [1] deployed, controller state=running, pinned={'opengist': 'ghcr.io/thomiceli/opengist:1.13'}
21:33:19 [2] seeding through the app's own front door
21:33:19 opengist: /register (with its own _csrf) http=302
21:33:19 [3] control C1 — reading the seed back BEFORE the update
21:33:21 opengist: sign-in as the seeded account http=302 name_on_page=True
21:33:21 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:34:06 [4] backup idle; last=None
21:34:07 [5] drill commit d22af261ca40: opengist ghcr.io/thomiceli/opengist:1.13 -> ghcr.io/thomiceli/opengist:1.15 (push rc=0)
21:34:11 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
21:34:11 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:34:12 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:34:12 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:34:13 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
21:34:20 + 8.2s phase=starting label=Indítás az új verzióval… err=None hold=None
21:34:21 + 9.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:34:26 + 14.4s phase=done label=Frissítve err=None hold=None
21:34:26 [7] reading the seed back AFTER the update
21:34:26 opengist: sign-in as the seeded account http=None name_on_page=False
21:34:29 [8] pinned = {'opengist': 'ghcr.io/thomiceli/opengist:1.15'}
21:34:29 [8] installed = {'opengist': 'ghcr.io/thomiceli/opengist:1.15'}
21:34:29 [8] compose = ['image: ghcr.io/thomiceli/opengist:1.15']
21:34:29 [8] inspect = ['opengist ghcr.io/thomiceli/opengist:1.15 running=true restarts=0']
21:34:29 [9] verdict failed -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/opengist/verdict.json
################ 21:34:29 opengist done rc=0