Files
felhom.eu/documentation/audits/update-night-2026-09-21/run_rest.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

407 lines
83 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:34:35 1/15 failwalk — the household's way out of tonight's TWO real held edges
21:34:35 ==== FAILWALK adventurelog: the household's way out of a held update
21:34:37 [1] held state: phase=failed hold='A(z) adventurelog frissítése 2026-09-21 20:53-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 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.'
21:34:37 update_error = 'A(z) adventurelog frissítése 2026-09-21 20:53-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 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.'
21:34:37 pinned = {'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'}
21:34:37 installed = {'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'}
21:34:37 compose = ['image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'image: postgis/postgis:16-3.5-alpine', 'image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0']
21:34:37 inspect = []
21:34:37 [2] hold sentence HU: ['AdventureLog — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Telepített alkalmazás nem fut: AdventureLog (stopped) Rendszermonitor → Telepített alkalmazás nem fut: Tandoor Recipes (stopped) Rendszermonitor → Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások AdventureLog Leállítva Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások A(z) adventurelog frissítése 2026-09-21 20:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Mentések Utazási napló - utazások dokumentálása térképpel és fotókkal ~100M RAM travel Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'Utazások dokumentálása képekkel és jegyzetekkel Térképes megjelenítés a meglátogatott helyekről Úti tervek készítése és szervezése Statisztikák - meglátogatott országok, városok Kalandok megosztása családdal és barátokkal Első lépések Nyisd meg a travel.DOMAIN címet a böngészőben Hozd létre a fiókodat Add hozzá az első utazásodat Jelöld meg a meglátogatott helyeket a térképen Dokumentáció Hivatalos dokumentáció ↗']
21:34:37 [2] hold sentence EN: ['AdventureLog — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ An installed app is not running: AdventureLog (stopped) System monitor → An installed app is not running: Tandoor Recipes (stopped) System monitor → The hub connection is off — central monitoring is not running System monitor → ← Apps AdventureLog Stopped Update available — today Open ↗ Log Export Settings A(z) adventurelog frissítése 2026-09-21 20:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Backups Travel journal - keep your trips with a map and photos ~100M RAM travel Runs on Pi Move to another storage You can move this app’s data to another connected storage.', 'Keep your trips with pictures and notes See everywhere you have been on a map Plan and organise trips before you go Statistics - the countries and cities you have visited Share your adventures with family and friends First steps Open travel.DOMAIN in your browser Create your account Add your first trip Mark the places you have been on the map Documentation Official documentation ↗']
21:34:37 [3] the last migration line the app printed, verbatim: None
21:34:37 [R] restoring adventurelog from snapshot 'helyi' (of 1 offered)
21:34:38 [R] POST /backup/restore -> HTTP/2 302 ['location: /backups/restore?flash=flash.restore.started']
21:34:38 + 0.0s restore (True, None, None)
21:35:52 + 74.9s restore (False, None, None)
21:35:52 [R] after restore: state=running hold=None phase=None
21:35:55 [4] restore: HTTP/2 302 in 75.0s; state=running hold=None
21:35:55 pinned after = {'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'}
21:35:55 inspect after = ['adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 running=true restarts=0', 'adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.12.1 running=true restarts=0', 'adventurelog-postgres postgis/postgis:16-3.5-alpine running=true restarts=0']
21:36:00 adventurelog: createsuperuser :: Superuser created successfully.
21:36:04 adventurelog: seeded superuser drill4471b3
21:36:12 adventurelog: readback of the seeded account found=True
21:36:12 [5] the app answers its own front door again and holds data: True
21:36:12 [6] sentence after the restore HU: ['AdventureLog — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Telepített alkalmazás nem fut: Tandoor Recipes (stopped) Rendszermonitor → Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások AdventureLog Fut Frissítés elérhető — 65 napja Megnyitás ↗ Napló Exportálás Beállítások Utazási napló - utazások dokumentálása térképpel és fotókkal ~100M RAM travel Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'Utazások dokumentálása képekkel és jegyzetekkel Térképes megjelenítés a meglátogatott helyekről Úti tervek készítése és szervezése Statisztikák - meglátogatott országok, városok Kalandok megosztása családdal és barátokkal Első lépések Nyisd meg a travel.DOMAIN címet a böngészőben Hozd létre a fiókodat Add hozzá az első utazásodat Jelöld meg a meglátogatott helyeket a térképen Dokumentáció Hivatalos dokumentáció ↗']
21:36:12 written -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/adventurelog/failwalk.json
21:36:12 ==== FAILWALK tandoor: the household's way out of a held update
21:36:15 [1] held state: phase=failed 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:36:15 update_error = '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:36:15 pinned = {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'}
21:36:15 installed = {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.13', 'tandoor-postgres': 'postgres:16-alpine'}
21:36:15 compose = ['image: ghcr.io/tandoorrecipes/recipes:2.6.15', 'image: postgres:16-alpine']
21:36:15 inspect = []
21:36:15 [2] hold sentence HU: ['Tandoor Recipes — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Telepített alkalmazás nem fut: Tandoor Recipes (stopped) Rendszermonitor → Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások Tandoor Recipes Leállítva Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások 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.', '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.', 'Mentések Receptkezelő és étkezés tervező a családnak ~512M RAM home Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'Receptek gyűjtése és rendszerezése egy helyen Receptek importálása weboldalakról egy kattintással Heti étkezés tervezés és bevásárlólista generálás Több felhasználó - a család együtt tervezhet Receptek megosztása linkkel családtagokkal, barátokkal Első lépések Nyisd meg a recipes.DOMAIN címet a böngészőben Hozd létre az admin fiókot Importáld az első receptet egy weboldalról (Bookmarklet) Próbáld ki az étkezés tervezőt Hívd meg a családtagokat Dokumentáció Hivatalos dokumentáció ↗']
21:36:15 [2] hold sentence EN: ['Tandoor Recipes — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ An installed app is not running: Tandoor Recipes (stopped) System monitor → The hub connection is off — central monitoring is not running System monitor → ← Apps Tandoor Recipes Stopped Update available — today Open ↗ Log Export Settings 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.', '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.', 'Backups A recipe manager and meal planner for the household ~512M RAM home Runs on Pi Move to another storage You can move this app’s data to another connected storage.', 'Keep all your recipes in one place Import a recipe from a web page with one click Plan the week&#39;s meals and get a shopping list out of it Several people - the household can plan together Share a recipe by link with family and friends First steps Open recipes.DOMAIN in your browser Create the admin account Import your first recipe from a web page (Bookmarklet) Try the meal planner Invite the household Documentation Official documentation ↗']
21:36:15 [3] the last migration line the app printed, verbatim: None
21:36:15 [R] restoring tandoor from snapshot 'helyi' (of 1 offered)
21:36:15 [R] POST /backup/restore -> HTTP/2 302 ['location: /backups/restore?flash=flash.restore.started']
21:36:15 + 0.0s restore (True, None, None)
21:36:47 + 32.4s restore (False, None, None)
21:36:47 [R] after restore: state=running hold=None phase=None
21:36:50 [4] restore: HTTP/2 302 in 32.4s; state=running hold=None
21:36:50 pinned after = {'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.13', 'tandoor-postgres': 'postgres:16-alpine'}
21:36:50 inspect after = ['tandoor ghcr.io/tandoorrecipes/recipes:2.6.13 running=true restarts=0', 'tandoor-postgres postgres:16-alpine running=true restarts=0']
21:36:59 tandoor: createsuperuser :: Running django-vite in production mode (no HMR) Superuser created successfully.
21:37:03 tandoor: seeded superuser drill74a269
21:37:09 tandoor: readback of the seeded account found=True
21:37:09 [5] the app answers its own front door again and holds data: True
21:37:10 [6] sentence after the restore HU: ['Tandoor Recipes — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások Tandoor Recipes Nem egészséges Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások Receptkezelő és étkezés tervező a családnak ~512M RAM home Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'Receptek gyűjtése és rendszerezése egy helyen Receptek importálása weboldalakról egy kattintással Heti étkezés tervezés és bevásárlólista generálás Több felhasználó - a család együtt tervezhet Receptek megosztása linkkel családtagokkal, barátokkal Első lépések Nyisd meg a recipes.DOMAIN címet a böngészőben Hozd létre az admin fiókot Importáld az első receptet egy weboldalról (Bookmarklet) Próbáld ki az étkezés tervezőt Hívd meg a családtagokat Dokumentáció Hivatalos dokumentáció ↗']
21:37:10 written -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/tandoor/failwalk.json
############################################## 21:37:10 2/15 Phase 2.1 — MariaDB across a major, through the real Update BUTTON
21:37:10 ==== ENGINE EDGE nextcloud: mariadb:11.6 -> mariadb:12.3 (app image does NOT move)
21:37:12 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/nextcloud']
21:37:12 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['NEXTCLOUD_ADMIN_PASSWORD', 'HDD_PATH']
21:37:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:38:07 [1] deployed, controller state=running, pinned={'nextcloud': 'nextcloud:34.0.1-apache', 'nextcloud-db': 'mariadb:11.6', 'nextcloud-redis': 'redis:7-alpine'}
21:38:07 [2] seeding through the app's own route
21:38:11 nextcloud: occ user:add :: The account "drillb9a9d0" was created successfully Display name set to "drillb9a9d0"
21:38:14 nextcloud: seeded user drillb9a9d0
21:38:14 [3] control C1 — reading the seed back BEFORE the engine moves
21:38:19 nextcloud: readback of the seeded user found=True
21:38:22 [3b] engine observables BEFORE written to engine-before.txt
21:38:22 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:39:47 [4] backup idle; last=None
21:39:48 [5] drill commit 29e99da5478c: nextcloud mariadb:11.6 -> mariadb:12.3 (push rc=0)
21:40:17 [sync] the badge needed 29.0s and 5 sync+rescan rounds to catch up to mariadb:12.3 — R-607's window, measured
21:40:17 [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:40:17 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:40:17 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:40:17 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:40:18 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
21:40:20 + 3.1s phase=starting label=Indítás az új verzióval… err=None hold=None
21:40:36 + 18.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
21:40:37 + 19.5s phase=done label=Frissítve err=None hold=None
21:40:39 [6b] engine observables AFTER written to engine-after.txt
21:40:40 [6c] hold sentences HU: ['Nextcloud — Felhom.eu document.documentElement.className=document.documentElement.className.replace(\'no-js\',\'js\'); function csrfHeaders(){var el=document.querySelector(\'meta[name="csrf-token"]\');return el?{\'X-CSRF-Token\':el.content}:{};} function felhomConfirm(el,question,onYes){ if(!el||el.dataset.fcOpen)return; el.dataset.fcOpen=\'1\'; var wrap=document.createElement(\'span\');wrap.className=\'inline-confirm\'; var q=document.createElement(\'span\');q.className=\'inline-confirm-q\';q.textContent=question; var yes=document.createElement(\'button\');yes.type=\'button\';yes.className=\'btn btn-xs btn-danger\';yes.textContent=\'Igen\'; var no=document.createElement(\'button\');no.type=\'button\';no.className=\'btn btn-xs btn-outline\';no.textContent=\'Mégse\'; wrap.appendChild(q);wrap.appendChild(yes);wrap.appendChild(no); el.style.display=\'none\';el.parentNode.insertBefore(wrap,el.nextSibling); function close(){wrap.remove();el.style.display=\'\';delete el.dataset.fcOpen;} no.addEventListener(\'click\',close); yes.addEventListener(\'click\',function(){close();onYes();}); } document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'[data-confirm]\'):null; if(!btn)return; e.preventDefault(); felhomConfirm(btn,btn.getAttribute(\'data-confirm\'),function(){ var form=btn.closest(\'form\'); if(form){if(form.requestSubmit)form.requestSubmit(btn);else form.submit();} }); }); document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'.nav-group-toggle\'):null; if(!btn)return; var group=btn.closest(\'.nav-group\'); if(!group)return; var willOpen=!group.classList.contains(\'is-open\'); document.querySelectorAll(\'.nav-group.is-open\').forEach(function(g){ g.classList.remove(\'is-open\'); var t=g.querySelector(\'.nav-group-toggle\'); if(t)t.setAttribute(\'aria-expanded\',\'false\'); }); if(willOpen){group.classList.add(\'is-open\');btn.setAttribute(\'aria-expanded\',\'true\');} }); function showAlert(msg){var o=document.createElement(\'div\');o.className=\'modal-overlay\';o.id=\'alert-modal\';o.addEventListener(\'click\',function(e){if(e.target===o)o.remove();});var c=document.createElement(\'div\');c.className=\'modal-card\';c.innerHTML=\' Üzenet \'+msg.replace(/&/g,\'&amp;\').replace(/ /g,\'&gt;\')+\' OK \';o.appendChild(c);document.body.appendChild(o);} Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások Nextcloud Fut Naprakész Megnyitás ↗ Napló Exportálás Beállítások Hiányzó tárhely: nextcloud Ennek az alkalmazásnak az adattárolója jelenleg nem elérhető, ezért le van állítva.', "Válassz céltárhelyet… SCRATCH HDD (/mnt/felhom-drives/scratch_hdd) Áthelyezés function appMigFmtGB(b){ return (Number(b||0)/1e9).toFixed(1)+' GB'; } function appMigRender(job){ var names={stop:'Leállítás',copy:'Adatok másolása',verify:'Ellenőrzés',flip:'Újratelepítés',redeploy:'Újratelepítés',cleanup:'Régi adatok törlése'}; var s=names[job.phase]||job.phase; if(job.phase==='copy'&&job.bytes_total>0){ s+=' ('+Math.floor(100*job.bytes_done/job.bytes_total)+'% — '+appMigFmtGB(job.bytes_done)+'/'+appMigFmtGB(job.bytes_total)+')'; } return s+'…'; } function appMigWatch(){ var panel=document.getElementById('app-migrate-progress'); if(panel) panel.style.display='block'; function tick(){ fetch('/api/storage/migrate/status').then(function(r){return r.json();}).then(function(d){ var job=d.data&&d.data.job; if(!job){ if(panel) panel.textContent='Nincs folyamatban áthelyezés.'; return; } if(panel) panel.innerHTML=appMigRender(job); if(job.phase==='done'){ if(panel) panel.innerHTML+=' Kész '; setTimeout(function(){location.reload();},1500); return; } if(job.phase==='aborted'){ if(panel) panel.innerHTML+=' Megszakadt: '+(job.error||'')+' A régi adatok érintetlenek.'; return; } setTimeout(tick,1500); }).catch(function(){ setTimeout(tick,2000); }); } tick(); } function appMigrate(btn,app,label){ var sel=document.getElementById('app-migrate-target'); var target=sel?sel.value:''; if(!target){ showAlert('Válassz céltárhelyet.'); return; } felhomConfirm(btn,'Áthelyezed a(z) '+label+' adatait ide: '+target+'?", "A régi adatok csak sikeres áthelyezés után törlődnek.',function(){ fetch('/api/storage/migrate-app',{method:'POST',headers:Object.assign({'Content-Type':'application/json'},csrfHeaders()),body:JSON.stringify({app:app,target:target})}) .then(function(r){return r.json();}).then(function(d){ if(d.ok){ appMigWatch(); } else { showAlert('Hiba: '+(d.error||'ismeretlen')); } }) .catch(function(e){ showAlert('Hiba: '+e); }); }); } (function(){ fetch('/api/storage/migrate/status').then(function(r){return r.json();}).then(function(d){ if(d.data&&d.data.job){ appMigWatch(); } }).catch(function(){}); })(); Mire használható?"]
21:40:40 [6c] hold sentences EN: ['Nextcloud — Felhom.eu document.documentElement.className=document.documentElement.className.replace(\'no-js\',\'js\'); function csrfHeaders(){var el=document.querySelector(\'meta[name="csrf-token"]\');return el?{\'X-CSRF-Token\':el.content}:{};} function felhomConfirm(el,question,onYes){ if(!el||el.dataset.fcOpen)return; el.dataset.fcOpen=\'1\'; var wrap=document.createElement(\'span\');wrap.className=\'inline-confirm\'; var q=document.createElement(\'span\');q.className=\'inline-confirm-q\';q.textContent=question; var yes=document.createElement(\'button\');yes.type=\'button\';yes.className=\'btn btn-xs btn-danger\';yes.textContent=\'Yes\'; var no=document.createElement(\'button\');no.type=\'button\';no.className=\'btn btn-xs btn-outline\';no.textContent=\'Cancel\'; wrap.appendChild(q);wrap.appendChild(yes);wrap.appendChild(no); el.style.display=\'none\';el.parentNode.insertBefore(wrap,el.nextSibling); function close(){wrap.remove();el.style.display=\'\';delete el.dataset.fcOpen;} no.addEventListener(\'click\',close); yes.addEventListener(\'click\',function(){close();onYes();}); } document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'[data-confirm]\'):null; if(!btn)return; e.preventDefault(); felhomConfirm(btn,btn.getAttribute(\'data-confirm\'),function(){ var form=btn.closest(\'form\'); if(form){if(form.requestSubmit)form.requestSubmit(btn);else form.submit();} }); }); document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'.nav-group-toggle\'):null; if(!btn)return; var group=btn.closest(\'.nav-group\'); if(!group)return; var willOpen=!group.classList.contains(\'is-open\'); document.querySelectorAll(\'.nav-group.is-open\').forEach(function(g){ g.classList.remove(\'is-open\'); var t=g.querySelector(\'.nav-group-toggle\'); if(t)t.setAttribute(\'aria-expanded\',\'false\'); }); if(willOpen){group.classList.add(\'is-open\');btn.setAttribute(\'aria-expanded\',\'true\');} }); function showAlert(msg){var o=document.createElement(\'div\');o.className=\'modal-overlay\';o.id=\'alert-modal\';o.addEventListener(\'click\',function(e){if(e.target===o)o.remove();});var c=document.createElement(\'div\');c.className=\'modal-card\';c.innerHTML=\' Message \'+msg.replace(/&/g,\'&amp;\').replace(/ /g,\'&gt;\')+\' OK \';o.appendChild(c);document.body.appendChild(o);} Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → ← Apps Nextcloud Running Up to date Open ↗ Log Export Settings Missing storage: nextcloud This app’s data storage is not available right now, so the app is stopped.', "Choose a target storage… SCRATCH HDD (/mnt/felhom-drives/scratch_hdd) Move function appMigFmtGB(b){ return (Number(b||0)/1e9).toFixed(1)+' GB'; } function appMigRender(job){ var names={stop:'Stopping',copy:'Copying data',verify:'Checking',flip:'Reinstalling',redeploy:'Reinstalling',cleanup:'Deleting old data'}; var s=names[job.phase]||job.phase; if(job.phase==='copy'&&job.bytes_total>0){ s+=' ('+Math.floor(100*job.bytes_done/job.bytes_total)+'% — '+appMigFmtGB(job.bytes_done)+'/'+appMigFmtGB(job.bytes_total)+')'; } return s+'…'; } function appMigWatch(){ var panel=document.getElementById('app-migrate-progress'); if(panel) panel.style.display='block'; function tick(){ fetch('/api/storage/migrate/status').then(function(r){return r.json();}).then(function(d){ var job=d.data&&d.data.job; if(!job){ if(panel) panel.textContent='No move in progress.'; return; } if(panel) panel.innerHTML=appMigRender(job); if(job.phase==='done'){ if(panel) panel.innerHTML+=' Done '; setTimeout(function(){location.reload();},1500); return; } if(job.phase==='aborted'){ if(panel) panel.innerHTML+=' Stopped: '+(job.error||'')+' The old data is untouched.'; return; } setTimeout(tick,1500); }).catch(function(){ setTimeout(tick,2000); }); } tick(); } function appMigrate(btn,app,label){ var sel=document.getElementById('app-migrate-target'); var target=sel?sel.value:''; if(!target){ showAlert('Choose a target storage.'); return; } felhomConfirm(btn,'Move the '+label+' data to: '+target+'?", "The old data is deleted only after a successful move.',function(){ fetch('/api/storage/migrate-app',{method:'POST',headers:Object.assign({'Content-Type':'application/json'},csrfHeaders()),body:JSON.stringify({app:app,target:target})}) .then(function(r){return r.json();}).then(function(d){ if(d.ok){ appMigWatch(); } else { showAlert('Error: '+(d.error||'unknown')); } }) .catch(function(e){ showAlert('Error: '+e); }); }); } (function(){ fetch('/api/storage/migrate/status').then(function(r){return r.json();}).then(function(d){ if(d.data&&d.data.job){ appMigWatch(); } }).catch(function(){}); })(); What is it for?"]
21:40:40 [7] reading the seed back AFTER the engine moved
21:40:45 nextcloud: readback of the seeded user found=True
21:40:47 [8] pinned = {'nextcloud': 'nextcloud:34.0.1-apache', 'nextcloud-db': 'mariadb:12.3', 'nextcloud-redis': 'redis:7-alpine'}
21:40:47 [8] installed = {'nextcloud': 'nextcloud:34.0.1-apache', 'nextcloud-db': 'mariadb:12.3', 'nextcloud-redis': 'redis:7-alpine'}
21:40:47 [8] compose = ['image: nextcloud:34.0.1-apache', 'image: mariadb:12.3', 'image: redis:7-alpine']
21:40:47 [8] inspect = ['nextcloud-db mariadb:12.3 running=true restarts=0', 'nextcloud nextcloud:34.0.1-apache running=true restarts=0', 'nextcloud-redis redis:7-alpine running=true restarts=0']
21:40:47 verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/nextcloud-engine-mariadb/verdict.json
############################################## 21:40:47 3/15 Phase 2.2 — PostgreSQL across a major: what a household would see TODAY
21:40:47 ==== ENGINE EDGE docmost: postgres:16-alpine -> postgres:17-alpine (app image does NOT move)
21:40:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:42:23 [1] deployed, controller state=running, pinned={'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:16-alpine', 'docmost-redis': 'redis:7-alpine'}
21:42:23 [2] seeding through the app's own route
21:42:23 docmost: /api/auth/setup http=200 rc=0
21:42:23 [3] control C1 — reading the seed back BEFORE the engine moves
21:42:24 docmost: login as the seeded user http=200 ok=True
21:42:29 [3b] engine observables BEFORE written to engine-before.txt
21:42:29 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:44:09 [4] backup idle; last=None
21:44:10 [5] drill commit a26b546a99b8: docmost postgres:16-alpine -> postgres:17-alpine (push rc=0)
21:44:15 [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:44:15 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:44:15 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:44:15 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:44:16 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
21:44:17 + 2.1s phase=starting label=Indítás az új verzióval… err=None hold=None
21:44:20 + 5.1s phase=failed label=A frissítés nem sikerült err=A(z) docmost frissítése 2026-09-21 21:44-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:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza. hold=A(z) docmost frissítése 2026-09-21 21:44-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:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.
21:44:23 [6b] engine observables AFTER written to engine-after.txt
21:44:23 [6c] hold sentences HU: ['Docmost — Felhom.eu document.documentElement.className=document.documentElement.className.replace(\'no-js\',\'js\'); function csrfHeaders(){var el=document.querySelector(\'meta[name="csrf-token"]\');return el?{\'X-CSRF-Token\':el.content}:{};} function felhomConfirm(el,question,onYes){ if(!el||el.dataset.fcOpen)return; el.dataset.fcOpen=\'1\'; var wrap=document.createElement(\'span\');wrap.className=\'inline-confirm\'; var q=document.createElement(\'span\');q.className=\'inline-confirm-q\';q.textContent=question; var yes=document.createElement(\'button\');yes.type=\'button\';yes.className=\'btn btn-xs btn-danger\';yes.textContent=\'Igen\'; var no=document.createElement(\'button\');no.type=\'button\';no.className=\'btn btn-xs btn-outline\';no.textContent=\'Mégse\'; wrap.appendChild(q);wrap.appendChild(yes);wrap.appendChild(no); el.style.display=\'none\';el.parentNode.insertBefore(wrap,el.nextSibling); function close(){wrap.remove();el.style.display=\'\';delete el.dataset.fcOpen;} no.addEventListener(\'click\',close); yes.addEventListener(\'click\',function(){close();onYes();}); } document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'[data-confirm]\'):null; if(!btn)return; e.preventDefault(); felhomConfirm(btn,btn.getAttribute(\'data-confirm\'),function(){ var form=btn.closest(\'form\'); if(form){if(form.requestSubmit)form.requestSubmit(btn);else form.submit();} }); }); document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'.nav-group-toggle\'):null; if(!btn)return; var group=btn.closest(\'.nav-group\'); if(!group)return; var willOpen=!group.classList.contains(\'is-open\'); document.querySelectorAll(\'.nav-group.is-open\').forEach(function(g){ g.classList.remove(\'is-open\'); var t=g.querySelector(\'.nav-group-toggle\'); if(t)t.setAttribute(\'aria-expanded\',\'false\'); }); if(willOpen){group.classList.add(\'is-open\');btn.setAttribute(\'aria-expanded\',\'true\');} }); function showAlert(msg){var o=document.createElement(\'div\');o.className=\'modal-overlay\';o.id=\'alert-modal\';o.addEventListener(\'click\',function(e){if(e.target===o)o.remove();});var c=document.createElement(\'div\');c.className=\'modal-card\';c.innerHTML=\' Üzenet \'+msg.replace(/&/g,\'&amp;\').replace(/ /g,\'&gt;\')+\' OK \';o.appendChild(c);document.body.appendChild(o);} Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások Docmost Leállítva Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások A(z) docmost frissítése 2026-09-21 21:44-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Mentések Modern wiki és dokumentáció platform Notion-szerű szerkesztővel ~200M RAM productivity Csak x86 Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.']
21:44:23 [6c] hold sentences EN: ['Docmost — Felhom.eu document.documentElement.className=document.documentElement.className.replace(\'no-js\',\'js\'); function csrfHeaders(){var el=document.querySelector(\'meta[name="csrf-token"]\');return el?{\'X-CSRF-Token\':el.content}:{};} function felhomConfirm(el,question,onYes){ if(!el||el.dataset.fcOpen)return; el.dataset.fcOpen=\'1\'; var wrap=document.createElement(\'span\');wrap.className=\'inline-confirm\'; var q=document.createElement(\'span\');q.className=\'inline-confirm-q\';q.textContent=question; var yes=document.createElement(\'button\');yes.type=\'button\';yes.className=\'btn btn-xs btn-danger\';yes.textContent=\'Yes\'; var no=document.createElement(\'button\');no.type=\'button\';no.className=\'btn btn-xs btn-outline\';no.textContent=\'Cancel\'; wrap.appendChild(q);wrap.appendChild(yes);wrap.appendChild(no); el.style.display=\'none\';el.parentNode.insertBefore(wrap,el.nextSibling); function close(){wrap.remove();el.style.display=\'\';delete el.dataset.fcOpen;} no.addEventListener(\'click\',close); yes.addEventListener(\'click\',function(){close();onYes();}); } document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'[data-confirm]\'):null; if(!btn)return; e.preventDefault(); felhomConfirm(btn,btn.getAttribute(\'data-confirm\'),function(){ var form=btn.closest(\'form\'); if(form){if(form.requestSubmit)form.requestSubmit(btn);else form.submit();} }); }); document.addEventListener(\'click\',function(e){ var btn=e.target.closest?e.target.closest(\'.nav-group-toggle\'):null; if(!btn)return; var group=btn.closest(\'.nav-group\'); if(!group)return; var willOpen=!group.classList.contains(\'is-open\'); document.querySelectorAll(\'.nav-group.is-open\').forEach(function(g){ g.classList.remove(\'is-open\'); var t=g.querySelector(\'.nav-group-toggle\'); if(t)t.setAttribute(\'aria-expanded\',\'false\'); }); if(willOpen){group.classList.add(\'is-open\');btn.setAttribute(\'aria-expanded\',\'true\');} }); function showAlert(msg){var o=document.createElement(\'div\');o.className=\'modal-overlay\';o.id=\'alert-modal\';o.addEventListener(\'click\',function(e){if(e.target===o)o.remove();});var c=document.createElement(\'div\');c.className=\'modal-card\';c.innerHTML=\' Message \'+msg.replace(/&/g,\'&amp;\').replace(/ /g,\'&gt;\')+\' OK \';o.appendChild(c);document.body.appendChild(o);} Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → ← Apps Docmost Stopped Update available — today Open ↗ Log Export Settings A(z) docmost frissítése 2026-09-21 21:44-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Backups A modern wiki and documentation platform with a Notion-like editor ~200M RAM productivity x86 only Move to another storage You can move this app’s data to another connected storage.']
21:44:23 [7] reading the seed back AFTER the engine moved
21:44:23 docmost: login as the seeded user http=404 ok=False
21:44:23 docmost: login body 404 page not found
21:44:25 [8] pinned = {'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:17-alpine', 'docmost-redis': 'redis:7-alpine'}
21:44:25 [8] installed = {'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:16-alpine', 'docmost-redis': 'redis:7-alpine'}
21:44:25 [8] compose = ['image: docmost/docmost:0.96.0', 'image: postgres:17-alpine', 'image: redis:7-alpine']
21:44:25 [8] inspect = []
21:44:25 [W] the edge ended badly — walking the household's way out (restore)
21:44:25 [R] restoring docmost from snapshot 'helyi' (of 1 offered)
21:44:25 [R] POST /backup/restore -> HTTP/2 302 ['location: /backups/restore?flash=flash.restore.started']
21:44:25 + 0.0s restore (True, None, None)
21:44:56 + 30.4s restore (False, None, None)
21:44:56 [R] after restore: state=running hold=None phase=None
21:44:59 docmost: login as the seeded user http=200 ok=True
21:44:59 [W] the seed read back after the restore: True
21:45:02 verdict failed -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/docmost-engine-postgres/verdict.json
############################################## 21:45:02 4/15 Phase 2.3 — the PostgreSQL conversion rehearsal (Q5), costed on a real seeded datadir
21:45:02 ==== Phase 2.3: the PostgreSQL 16 -> 17 conversion rehearsal (Q5)
21:45:02 docmost: /api/auth/setup http=403 rc=0
21:45:02 docmost: setup refused: {"message":"Workspace setup already completed.","error":"Forbidden","statusCode":403}
############################################## 21:45:02 5/15 B1 — the UNATTENDED HOLD (the app is then LEFT HELD until Phase 4)
21:45:02 ==== B1: the UNATTENDED HOLD
21:45:02 [0] deployed apps not level with the catalog BEFORE the leg: ['adventurelog', 'docmost', 'glance', 'tandoor', 'uptime-kuma', 'wishlist']
21:45:02 [0] removing adventurelog so the caller has only one app to react to (installed={'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'} catalog={'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'})
21:45:06 [X] stop -> 200 {'ok': True, 'message': 'Stack adventurelog stop completed'}
21:45:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'adventurelog', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárol
21:45:18 [X] after remove: deployed=False leftovers='/opt/docker/stacks/adventurelog'
21:45:18 [0] removing docmost so the caller has only one app to react to (installed={'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:16-alpine', 'docmost-redis': 'redis:7-alpine'} catalog={'docmost': 'docmost/docmost:0.96.0', 'docmost-postgres': 'postgres:17-alpine', 'docmost-redis': 'redis:7-alpine'})
21:45:20 [X] stop -> 200 {'ok': True, 'message': 'Stack docmost stop completed'}
21:45:25 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'docmost', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt saj
21:45:33 [X] after remove: deployed=False leftovers='/opt/docker/stacks/docmost'
21:45:33 [0] removing tandoor so the caller has only one app to react to (installed={'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.13', 'tandoor-postgres': 'postgres:16-alpine'} catalog={'tandoor': 'ghcr.io/tandoorrecipes/recipes:2.6.15', 'tandoor-postgres': 'postgres:16-alpine'})
21:45:36 [X] stop -> 200 {'ok': True, 'message': 'Stack tandoor stop completed'}
21:45:41 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'tandoor', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt saj
21:45:48 [X] after remove: deployed=False leftovers='/opt/docker/stacks/tandoor'
21:45:48 [0] removing uptime-kuma so the caller has only one app to react to (installed={'uptime-kuma': 'louislam/uptime-kuma:2.5.1'} catalog={'uptime-kuma': 'louislam/uptime-kuma:2.5.5'})
21:45:53 [X] stop -> 200 {'ok': True, 'message': 'Stack uptime-kuma stop completed'}
21:45:58 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'uptime-kuma', 'volumes_removed': ['uptime-kuma_uptime_kuma_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_no
21:46:05 [X] after remove: deployed=False leftovers='/opt/docker/stacks/uptime-kuma'
21:46:05 [0] removing wishlist so the caller has only one app to react to (installed={'wishlist': 'ghcr.io/cmintey/wishlist:v0.67.0'} catalog={'wishlist': 'ghcr.io/cmintey/wishlist:v0.66.0'})
21:46:15 [X] stop -> 200 {'ok': True, 'message': 'Stack wishlist stop completed'}
21:46:21 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'wishlist', 'volumes_removed': ['wishlist_wishlist_data', 'wishlist_wishlist_uploads'], 'hdd_paths_removed': [], 'hdd_paths_pre
21:46:28 [X] after remove: deployed=False leftovers='/opt/docker/stacks/wishlist'
21:46:28 [0] swept before the leg: ['adventurelog', 'docmost', 'tandoor', 'uptime-kuma', 'wishlist']
21:46:28 [1] removing the existing glance so it is redeployed from the drill image store
21:46:29 [X] stop -> 200 {'ok': True, 'message': 'Stack glance stop completed'}
21:46:34 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'glance', 'volumes_removed': ['glance_glance_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alka
21:46:41 [X] after remove: deployed=False leftovers='/opt/docker/stacks/glance'
21:46:42 [5] drill commit b906b38169d8: glance glanceapp/glance:v0.8.5 -> localhost:5000/drill/glance:1.0.0 (push rc=0)
21:46:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:46:57 [1] deployed, controller state=running, pinned={'glance': 'localhost:5000/drill/glance:1.0.0'}
21:46:59 [1] live compose now: image: localhost:5000/drill/glance:1.0.0
21:47:03 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:47:44 [4] backup idle; last=None
21:47:44 [5] drill commit c644164ee439: glance localhost:5000/drill/glance:1.0.0 -> localhost:5000/drill/glance:1.0.1 (push rc=0)
21:47:49 [3] 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:47:49 [3] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
21:47:49 [4] running unattended-caller.py, 3 passes, 90 s apart — nobody presses anything
21:56:03 [4] caller exited rc=0 after 494.3s
21:56:03 2026-09-21T19:47:49Z glance BEHIND and within a major — pressing Update
21:56:03 2026-09-21T19:47:49Z glance: phase=safety-dump updating=True
21:56:03 2026-09-21T19:47:51Z glance: phase=verifying updating=True
21:56:03 2026-09-21T19:53:02Z glance: phase=failed updating=False
21:56:03 2026-09-21T19:53:02Z glance ENDED held after 312.9s
21:56:03 2026-09-21T19:56:03Z === summary outcomes={'glance': ('held', 312.9)} never_again=['glance']
21:56:05 [5] state=stopped phase=failed error='A(z) glance frissítése 2026-09-21 21:53-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:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.' hold='A(z) glance frissítése 2026-09-21 21:53-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:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.'
21:56:05 [5] pinned={'glance': 'localhost:5000/drill/glance:1.0.1'}
21:56:05 [5] installed={'glance': 'localhost:5000/drill/glance:1.0.0'}
21:56:05 [5] inspect=[]
21:56:06 [6] evidence written. THE APP IS LEFT HELD ON PURPOSE — Phase 4 is the measurement.
############################################## 21:56:06 6/15 B2 — the new tag cannot be pulled
21:56:06 ==== B2: the new tag cannot be pulled
21:56:07 [5] drill commit 23cb04a29d63: bentopdf ghcr.io/alam00000/bentopdf:v2.8.6 -> localhost:5000/drill/pdf:1.0.0 (push rc=0)
21:56:11 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
21:56:26 [1] deployed, controller state=running, pinned={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}
21:56:26 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:57:06 [4] backup idle; last=None
21:57:10 [5] drill commit 90ff4da2ba20: bentopdf localhost:5000/drill/pdf:1.0.0 -> localhost:5000/drill/pdf:1.0.1 (push rc=0)
21:57:14 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:57:14 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
21:57:14 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
21:57:15 + 1.0s phase=failed label=A frissítés nem sikerült err=Az új verzió letöltése nem sikerült, ezért a frissítés elmaradt. Az alkalmazás a korábbi verzióval fut tovább. hold=None
21:57:20 second press (to read the refusal on the wire): http=202 {"ok": true, "data": {"accepted": true, "completed": false}, "message": "Frissítés elindult – az állapot a kártyán követhető"}
21:57:20 phases=['safety-dump', 'failed'] error='Az új verzió letöltése nem sikerült, ezért a frissítés elmaradt. Az alkalmazás a korábbi verzióval fut tovább.' hold=None old_serving=True
21:57:20 pinned after = {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}
21:57:20 compose after= ['image: ghcr.io/alam00000/bentopdf:v2.8.6']
############################################## 21:57:20 7/15 B3 — Update pressed while a backup runs
21:57:20 ==== B3: Update pressed while a backup is running
21:57:21 „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
21:57:22 press 0: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:57:25 press 1: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:57:28 press 2: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:57:31 press 3: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:57:34 press 4: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:57:37 press 5: http=409 reason='busy' :: A frissítés most nem indítható: mentés/visszaállítás folyamatban. Próbáld újra, ha befejeződött.
21:58:00 after the backup finished: http=202 reason=None ::
21:58:04 the update that got through ended: {'final_phase': 'failed', 'update_error': 'Az új verzió letöltése nem sikerült, ezért a frissítés elmaradt. Az alkalmazás a korábbi verzióval fut tovább.', 'hold_reason': None, 'seconds': 2.0, 'observables': {'pinned_images': {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}, 'installed_images': {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}, 'catalog_images': {'bentopdf': 'localhost:5000/drill/pdf:1.0.1'}, 'live_compose_image_lines': ['image: ghcr.io/alam00000/bentopdf:v2.8.6'], 'docker_inspect': ['bentopdf ghcr.io/alam00000/bentopdf:v2.8.6 running=true restarts=0']}}
############################################## 21:58:05 8/15 B7 — the 2 GB disk floor, and the refusal in both languages
21:58:05 ==== B7: the disk floor and the memory refusal
21:58:07 free before: /dev/loop1 69G 33G 33G 51% /var/lib/felhom 34700656640
21:58:09 avail=34700656640 eat=33200656640 | filled | /dev/loop1 69G 64G 1.4G 98% /var/lib/felhom
21:58:09 Update under the floor: http=409 reason='disk' :: Nincs elég szabad hely a frissítéshez: 1.4 GB szabad, az új verzió letöltéséhez legalább 2 GB szükséges.
21:58:11 refusal EN: http=409 :: Nincs elég szabad hely a frissítéshez: 1.4 GB szabad, az új verzió letöltéséhez legalább 2 GB szükséges.
21:58:13 freed: /dev/loop1 69G 33G 33G 51% /var/lib/felhom
############################################## 21:58:13 9/15 B9 — a FROZEN app receives a newer .felhom.yml (R-458)
21:58:13 ==== B9: a frozen bentopdf receives a newer .felhom.yml
21:58:13 installed={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}
21:58:13 catalog ={'bentopdf': 'localhost:5000/drill/pdf:1.0.1'}
21:58:13 FROZEN (catalog ahead of the pin)? True
21:58:16 before: state=running front door http=200
21:58:16 pushed a .felhom.yml-only change (no image line touched)
21:58:43 on the box now: healthcheck: | checks: | - type: http | port: 8080 | path: /__drill_only_in_the_newer_version__ | - type: http | port: 8080 | ---compose image lines--- | image: ghcr.io/alam00000/bentopdf:v2.8.6
22:00:44 states over 2 minutes: [('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200'), ('running', None, '200')]
22:00:46 household sentences HU: ['BentoPDF — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Telepített alkalmazás nem fut: Glance (stopped) Rendszermonitor → Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások BentoPDF Fut Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások Az új verzió letöltése nem sikerült, ezért a frissítés elmaradt.', 'Adatvédelmi fókuszú PDF eszköztár - a fájlok soha nem hagyják el a szervered ~100M RAM tools Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'PDF összefűzés, szétválasztás és forgatás PDF konvertálás képekké és képekből Jelszóvédelem és titkosítás Vízjel hozzáadása dokumentumokhoz Minden feldolgozás a szerveren - a fájlok nem kerülnek külső szolgáltatóhoz Első lépések Nyisd meg a pdf.DOMAIN címet a böngészőben Válaszd ki a kívánt műveletet Töltsd fel a PDF fájlt és kattints a feldolgozásra Dokumentáció Hivatalos dokumentáció ↗']
22:00:52 .felhom.yml reverted in the drill catalog
############################################## 22:00:52 10/15 B8 — a FLOATING pin: the up-to-date badge over an engine image that has moved upstream
22:00:52 ==== B8: the floating pin docmost-postgres on docmost
22:00:52 installed docmost-postgres = None digest=None
22:00:52 catalog docmost-postgres = None
22:00:52 badge HU []
22:00:52 badge EN []
22:00:54 docker says:
22:00:54 upstream digest for None (measured from DooPlex, never from the box) = None
22:00:54 press Update anyway: http=409 reason='not_deployed' :: Az alkalmazás nincs telepítve, ezért nem frissíthető.
22:00:56 installed docmost-postgres AFTER = {}
############################################## 22:00:56 11/15 B4 — two Updates within one second, then five
22:00:56 ==== B4 prep: putting ['privatebin', 'bentopdf'] on the local store's A tag
22:00:57 [5] drill commit 347d36f27c29: privatebin privatebin/pdo:2.0.6 -> localhost:5000/drill/paste:2.0.0 (push rc=0)
22:00:58 [5] drill commit 8c4467bf48c4: bentopdf localhost:5000/drill/pdf:1.0.1 -> localhost:5000/drill/pdf:2.0.0 (push rc=0)
22:01:02 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:01:17 [1] deployed, controller state=running, pinned={'privatebin': 'privatebin/pdo:2.0.6'}
22:01:17 [prep] bentopdf is deployed on {'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'} — removing so it comes up on the A tag
22:01:18 [X] stop -> 200 {'ok': True, 'message': 'Stack bentopdf stop completed'}
22:01:23 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'bentopdf', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt sa
22:01:30 [X] after remove: deployed=False leftovers='/opt/docker/stacks/bentopdf'
22:01:31 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:01:46 [1] deployed, controller state=running, pinned={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'}
22:01:46 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
22:02:26 [4] backup idle; last=None
22:02:26 ==== B4: publishing the B tag for ['privatebin', 'bentopdf'] in ONE drill commit
22:02:27 [5] drill commit 6eccf27ebd85: privatebin localhost:5000/drill/paste:2.0.0 -> localhost:5000/drill/paste:2.0.1 (push rc=0)
22:02:28 [5] drill commit 50b0756b9d39: bentopdf localhost:5000/drill/pdf:2.0.0 -> localhost:5000/drill/pdf:2.0.1 (push rc=0)
22:02:32 [b] privatebin: installed={'privatebin': 'privatebin/pdo:2.0.6'} catalog={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:02:32 [b] bentopdf: installed={'bentopdf': 'ghcr.io/alam00000/bentopdf:v2.8.6'} catalog={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:02:32 ==== B4 [two]: pressing Update on ['privatebin', 'bentopdf'] at once
22:02:33 press privatebin +0.268s http=202 reason=None ::
22:02:33 press bentopdf +0.268s http=202 reason=None ::
22:02:33 all 2 presses issued within 0.268s
22:02:33 + 0.0s updating=2 privatebin=safety-dump bentopdf=safety-dump
22:02:39 MOST UPDATES IN FLIGHT AT ONCE: 2 of 2
22:02:41 privatebin ended phase=done err=None hold=None pinned={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:02:44 bentopdf ended phase=done err=None hold=None pinned={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:02:44 -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/bad-days/B4-concurrent-updates/two.json
22:02:44 ==== B4 prep: putting ['privatebin', 'bentopdf', 'wishlist', 'uptime-kuma', 'opengist'] on the local store's A tag
22:02:45 [5] drill commit 9336a1035a83: privatebin localhost:5000/drill/paste:2.0.1 -> localhost:5000/drill/paste:2.0.0 (push rc=0)
22:02:46 [5] drill commit 7c066761d07c: bentopdf localhost:5000/drill/pdf:2.0.1 -> localhost:5000/drill/pdf:2.0.0 (push rc=0)
22:02:47 [5] drill commit e48d2d8b681b: wishlist ghcr.io/cmintey/wishlist:v0.66.0 -> localhost:5000/drill/wishes:2.0.0 (push rc=0)
22:02:47 [5] drill commit 0d36d8ada1d6: uptime-kuma louislam/uptime-kuma:2.5.5 -> localhost:5000/drill/status:2.0.0 (push rc=0)
22:02:48 [5] drill commit 4454cc7bfca7: opengist ghcr.io/thomiceli/opengist:1.15 -> localhost:5000/drill/gist:2.0.0 (push rc=0)
22:02:53 [prep] privatebin is deployed on {'privatebin': 'localhost:5000/drill/paste:2.0.1'} — removing so it comes up on the A tag
22:02:53 [X] stop -> 200 {'ok': True, 'message': 'Stack privatebin stop completed'}
22:02:58 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'privatebin', 'volumes_removed': ['privatebin_privatebin_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note'
22:03:06 [X] after remove: deployed=False leftovers='/opt/docker/stacks/privatebin'
22:03:06 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:03:16 [1] deployed, controller state=running, pinned={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:03:16 [prep] bentopdf is deployed on {'bentopdf': 'localhost:5000/drill/pdf:2.0.1'} — removing so it comes up on the A tag
22:03:16 [X] stop -> 200 {'ok': True, 'message': 'Stack bentopdf stop completed'}
22:03:21 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'bentopdf', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt sa
22:03:29 [X] after remove: deployed=False leftovers='/opt/docker/stacks/bentopdf'
22:03:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:03:44 [1] deployed, controller state=running, pinned={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:03:44 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:04:35 [1] deployed, controller state=running, pinned={'wishlist': 'ghcr.io/cmintey/wishlist:v0.66.0'}
22:04:35 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:05:05 [1] deployed, controller state=running, pinned={'uptime-kuma': 'louislam/uptime-kuma:2.5.5'}
22:05:05 [prep] opengist is deployed on {'opengist': 'ghcr.io/thomiceli/opengist:1.15'} — removing so it comes up on the A tag
22:05:05 [X] stop -> 200 {'ok': True, 'message': 'Stack opengist stop completed'}
22:05:11 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'opengist', 'volumes_removed': ['opengist_opengist_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az
22:05:18 [X] after remove: deployed=False leftovers='/opt/docker/stacks/opengist'
22:05:18 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
22:05:33 [1] deployed, controller state=running, pinned={'opengist': 'ghcr.io/thomiceli/opengist:1.15'}
22:05:33 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
22:06:19 [4] backup idle; last=None
22:06:19 ==== B4: publishing the B tag for ['privatebin', 'bentopdf', 'wishlist', 'uptime-kuma', 'opengist'] in ONE drill commit
22:06:20 [5] drill commit 4a837ad53f07: privatebin localhost:5000/drill/paste:2.0.0 -> localhost:5000/drill/paste:2.0.1 (push rc=0)
22:06:21 [5] drill commit d0ed7d703489: bentopdf localhost:5000/drill/pdf:2.0.0 -> localhost:5000/drill/pdf:2.0.1 (push rc=0)
22:06:22 [5] drill commit 1d22b74708e7: wishlist localhost:5000/drill/wishes:2.0.0 -> localhost:5000/drill/wishes:2.0.1 (push rc=0)
22:06:23 [5] drill commit c12ecdb8f5d8: uptime-kuma localhost:5000/drill/status:2.0.0 -> localhost:5000/drill/status:2.0.1 (push rc=0)
22:06:24 [5] drill commit e92b5cb3f99c: opengist localhost:5000/drill/gist:2.0.0 -> localhost:5000/drill/gist:2.0.1 (push rc=0)
22:06:29 [b] privatebin: installed={'privatebin': 'localhost:5000/drill/paste:2.0.1'} catalog={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:06:29 [b] bentopdf: installed={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'} catalog={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:06:29 [b] wishlist: installed={'wishlist': 'ghcr.io/cmintey/wishlist:v0.66.0'} catalog={'wishlist': 'localhost:5000/drill/wishes:2.0.1'}
22:06:29 [b] uptime-kuma: installed={'uptime-kuma': 'louislam/uptime-kuma:2.5.5'} catalog={'uptime-kuma': 'localhost:5000/drill/status:2.0.1'}
22:06:29 [b] opengist: installed={'opengist': 'ghcr.io/thomiceli/opengist:1.15'} catalog={'opengist': 'localhost:5000/drill/gist:2.0.1'}
22:06:29 ==== B4 [five]: pressing Update on ['privatebin', 'bentopdf', 'wishlist', 'uptime-kuma', 'opengist'] at once
22:06:29 press wishlist +0.359s http=202 reason=None ::
22:06:29 press uptime-kuma +0.380s http=202 reason=None ::
22:06:29 press privatebin +0.399s http=202 reason=None ::
22:06:30 press opengist +0.446s http=202 reason=None ::
22:06:30 press bentopdf +0.448s http=202 reason=None ::
22:06:30 all 5 presses issued within 0.448s
22:06:30 + 0.1s updating=5 privatebin=safety-dump bentopdf=safety-dump wishlist=pulling uptime-kuma=pulling opengist=pinning
22:06:41 + 11.7s updating=1 privatebin=done bentopdf=done wishlist=verifying uptime-kuma=done opengist=done
22:06:47 MOST UPDATES IN FLIGHT AT ONCE: 5 of 5
22:06:50 privatebin ended phase=done err=None hold=None pinned={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:06:52 bentopdf ended phase=done err=None hold=None pinned={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:06:54 wishlist ended phase=done err=None hold=None pinned={'wishlist': 'localhost:5000/drill/wishes:2.0.1'}
22:06:56 uptime-kuma ended phase=done err=None hold=None pinned={'uptime-kuma': 'localhost:5000/drill/status:2.0.1'}
22:06:58 opengist ended phase=done err=None hold=None pinned={'opengist': 'localhost:5000/drill/gist:2.0.1'}
22:06:58 -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/bad-days/B4-concurrent-updates/five.json
############################################## 22:06:58 12/15 B5 — a power cut in backing-up, then in safety-dump (the two phases nobody has cut in)
22:07:23 [knob] backup_max_age=1m :: update: | backup_max_age: 1m | Up 22 seconds (healthy)
22:07:23 ==== B5: a power cut during `backing-up` on privatebin
22:07:24 [5] drill commit 97063c022be6: privatebin localhost:5000/drill/paste:2.0.1 -> localhost:5000/drill/paste:2.0.2 (push rc=0)
22:07:28 [0] pending edge for the cut: installed={'privatebin': 'localhost:5000/drill/paste:2.0.1'} catalog={'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:07:33 [0] pinned before = {'privatebin': 'localhost:5000/drill/paste:2.0.1'}
22:07:33 [cut] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követ
22:07:33 + 0.027s phase=backing-up
/mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/phase3_b5.py:82: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
decided = datetime.utcnow().isoformat(timespec="milliseconds") + "Z"
22:07:33 [cut] phase 'backing-up' OBSERVED at 2026-09-21T20:07:33.345Z — pulling the plug NOW
22:07:42 [cut] `pct stop 9202` returned after 9.65s ::
22:07:46 [boot] guest 9202 starting
22:07:53 [boot] controller back: Up Less than a second (health: starting)
22:08:15 [boot] recovery lines: 2026/09/21 20:07:53 appstop_marker.go:278: [WARN] [appstop] crash recovery: an app-data backup (volume dump) (op "volume-dump:privatebin") was interrupted and left 1 app(s) stopped — restarting them: [privatebin] | 2026/09/21 20:07:53 appstop_marker.go:297: [INFO] [appstop] crash recovery: restarted privatebin after the interrupted an app-data backup (volume dump) | 2026/09/21 20:07:53 update.go:959: [WARN] [stacks] update recovery: privatebin was interrupted in backing-up (started 2026-09-21T20
22:08:19 [2] household sentence HU: ['PrivateBin — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások PrivateBin Fut Naprakész Megnyitás ↗ Napló Exportálás Beállítások A frissítés megszakadt, mert a vezérlő újraindult, mielőtt az új verzió elindult volna.', 'Titkosított szöveg megosztás - a szerver nem látja a tartalmat ~30M RAM security Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.', 'Érzékeny szövegek biztonságos megosztása E2E titkosítás - a szerver nem fér hozzá a tartalomhoz Beállítható lejárati idő (5 perc - 1 év, vagy soha) Olvasás után automatikus törlés opció Jelszóvédelem a még nagyobb biztonságért Első lépések Nyisd meg a paste.DOMAIN címet a böngészőben Írd be a szöveget és kattints a Küldés gombra Oszd meg a generált linket - a titkosítási kulcs az URL-ben van Dokumentáció Hivatalos dokumentáció ↗']
22:08:19 [2] household sentence EN: ['PrivateBin — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → ← Apps PrivateBin Running Up to date Open ↗ Log Export Settings A frissítés megszakadt, mert a vezérlő újraindult, mielőtt az új verzió elindult volna.', 'Share sensitive text safely End-to-end encryption - the server cannot reach the content You choose how long it lasts (5 minutes to 1 year, or never) Optional: delete it automatically after it is read Password protection for extra safety First steps Open paste.DOMAIN in your browser Type your text and select Send Share the link you get - the encryption key is part of the URL Documentation Official documentation ↗']
22:08:19 privatebin: seeded paste id=1a72111ee336aa1f
22:08:20 privatebin: readback http=200 marker_present=True
22:08:20 [3] the app works and holds data after the cut: True
22:08:20 [4] pinned after = {'privatebin': 'localhost:5000/drill/paste:2.0.1'} (moved: False)
22:08:20 ==== B5: a power cut during `safety-dump` on bentopdf
22:08:21 [5] drill commit be147e24e8ec: bentopdf localhost:5000/drill/pdf:2.0.1 -> localhost:5000/drill/pdf:2.0.2 (push rc=0)
22:08:25 [0] pending edge for the cut: installed={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'} catalog={'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:08:29 [0] pinned before = {'bentopdf': 'localhost:5000/drill/pdf:2.0.1'}
22:08:29 [cut] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követ
22:08:29 + 0.022s phase=backing-up
22:08:29 + 0.248s phase=pulling
22:08:30 + 0.473s phase=failed
22:08:30 [cut] the update ENDED at phase failed before 'safety-dump' was ever seen
22:08:30 [!] the phase was never observed — the cut did NOT happen. Recorded as a MISS, not as a pass.
22:08:55 [knob] backup_max_age=24h :: update: | backup_max_age: 24h | Up 22 seconds (healthy)
############################################## 22:08:55 13/15 Phase 4 — the morning after, with B1's app still held
22:08:55 ==== Phase 4: the morning after
22:08:57 [1] glance: state=stopped phase=None hold='A(z) glance frissítése 2026-09-21 21:53-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:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.'
22:08:57 error = None
22:08:57 [1] the four surfaces a household would look at, both languages
22:08:57 app_page HU ['Glance — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → ← Alkalmazások Glance Leállítva Frissítés elérhető — ma Megnyitás ↗ Napló Exportálás Beállítások A(z) glance frissítése 2026-09-21 21:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Mentések Minimalista dashboard - RSS, időjárás, könyvjelzők egy oldalon ~20M RAM dashboard Pi kompatibilis Áthelyezés másik tárhelyre Ennek az alkalmazásnak az adatait másik csatlakoztatott tárhelyre helyezheted át.']
22:08:57 app_page EN ['Glance — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → ← Apps Glance Stopped Update available — today Open ↗ Log Export Settings A(z) glance frissítése 2026-09-21 21:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval.', 'Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 21:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.', 'Backups A minimalist dashboard - RSS, weather and bookmarks on one page ~20M RAM dashboard Runs on Pi Move to another storage You can move this app’s data to another connected storage.']
22:08:57 dashboard HU ['Vezérlőpult — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → Vezérlőpult enkisfelhom.hu 10 Futó alkalmazás 1 Leállítva 55 Összes alkalmazás Memória 4.4 GB / 25 GB (17%) CPU 8% Load: 1.81 / 1.48 / 1.27 Hőmérséklet 56°C Rendszer (/) 33.7 GB / 68.4 GB (49%) SCRATCH HDD 49.2 GB / 938 GB (5%) Tárhely (nextcloud) 49.2 GB / 938 GB (5%) ● Az adattároló (/mnt/felhom-drives/scratch_hdd/userdata/nextcloud) nem külön meghajtón van — az adatok a rendszermeghajtóra íródnak Rendszermonitor → Lemezek állapota Nincs adat Biztonsági mentés Utolsó mentés: 2026-09-21 20:05 Adatbázisok: 3 mentve Telepített alkalmazások BentoPDF Adatvédelmi fókuszú PDF eszköztár Fut Megnyitás Napló Gitea Könnyű, saját Git szerver webes felülettel Fut Megnyitás Napló Glance Minimalista információs dashboard Leállítva Eltávolítás Napló Nextcloud Saját felhő tárhely - Google Drive/Dropbox alternatíva Fut Megnyitás Napló OpenGist Kód snippetek megosztása (GitHub Gist alternatíva) Fut Megnyitás Napló PrivateBin Titkosított jegyzet és szöveg megosztás Fut Megnyitás Napló Traefik Forgalomirányító (reverse proxy) — a kéréseket a megfelelő alkalmazáshoz irányítja.', 'Fut Védett Uptime Kuma Szolgáltatás és weboldal monitoring Fut Megnyitás Napló Vaultwarden Jelszókezelő (Bitwarden-kompatibilis) Fut Megnyitás Napló Wishlist Családi kívánságlista megosztás Fut Megnyitás Napló Zipline ShareX/Flameshot szerver - screenshot és fájlmegosztás Nem egészséges URL nem elérhető Megnyitás Napló']
22:08:57 dashboard EN ['Dashboard — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → Dashboard enkisfelhom.hu 10 Running apps 1 Stopped 55 All apps Memory 4.4 GB / 25 GB (17%) CPU 8% Load: 1.81 / 1.48 / 1.27 Temperature 56°C System (/) 33.7 GB / 68.4 GB (49%) SCRATCH HDD 49.2 GB / 938 GB (5%) Tárhely (nextcloud) 49.2 GB / 938 GB (5%) ● Az adattároló (/mnt/felhom-drives/scratch_hdd/userdata/nextcloud) nem külön meghajtón van — az adatok a rendszermeghajtóra íródnak System monitor → Disk health No data Backup Last backup: 2026-09-21 20:05 Databases: 3 backed up Installed apps BentoPDF A privacy-first PDF toolbox Running Open Log Gitea A light Git server of your own, with a web interface Running Open Log Glance A minimalist information dashboard Stopped Remove Log Nextcloud Your own cloud storage - a Google Drive/Dropbox alternative Running Open Log OpenGist Share code snippets (a GitHub Gist alternative) Running Open Log PrivateBin Encrypted note and text sharing Running Open Log Traefik Traffic router (reverse proxy) — sends each request to the right app.']
22:08:57 launcher HU []
22:08:57 launcher EN []
22:08:57 backups_page HU ['Biztonsági mentés — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → Biztonsági mentés enkisfelhom.hu Tárhely áttekintés Rendszer (/) 33.7 GB / 68.4 GB (49%) SCRATCH HDD 49.2 GB / 938 GB (5%) Tárhely (nextcloud) 49.2 GB / 938 GB (5%) DB mentések 3 fájl Rendszermentés (teljes mentés) A teljes szerver — alkalmazások, beállítások és adatbázisok együtt — időszakos mentése, amelyből az egész készülék visszaállítható.', 'Mentési időablak A mentések egymás után futnak: adatbázis-mentés, helyi másolat, távoli mentés, majd a teljes rendszermentés.', 'Mentési időablak kezdete Mentés Adatbázis-mentés: 02:30 Helyi másolat: 03:30 Távoli mentés: 04:15 Teljes rendszermentés: kb.']
22:08:57 backups_page EN ['Backup — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → Backup enkisfelhom.hu Storage overview System (/) 33.7 GB / 68.4 GB (49%) SCRATCH HDD 49.2 GB / 938 GB (5%) Tárhely (nextcloud) 49.2 GB / 938 GB (5%) Database backups 3 files System backup (full backup) A regular backup of the whole server — apps, settings and databases together — that can bring back the entire device.', 'Backup window The backups run one after the other: database backup, local copy, remote backup, then the full system backup.', 'Backup window start Save Database backup: 02:30 Local copy: 03:30 Remote backup: 04:15 Full system backup: about 04:30–08:30 &#10003; Data backup active – Remote system backup not set up 3 Databases backed up']
22:08:57 backups_apps_page HU ['Biztonsági mentés — Alkalmazások — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Távoli mentés Alkalmazások Visszaállítás Megosztás Hálózati megosztás Rendszermonitor Debug Beállítások Rendszer Értesítések Biztonság és hozzáférés 0.261.0 Magyar English Kijelentkezés ↗ Hub kapcsolat kikapcsolva — a központi monitoring nem aktív Rendszermonitor → Biztonsági mentés — Alkalmazások enkisfelhom.hu Alkalmazás-mentések (adatbázis + konfiguráció) Az egyes alkalmazások részletes, granulált mentése — adatbázis-kiírások, beállítások és alkalmazás-fájlok.', 'A fenti teljes mentéstől függetlenül, alkalmazásonként visszaállítható.', 'Ütemezés Adatbázis mentés 02:30 Következő: holnap 02:30 Utolsó adatbázis mentés: 2026-09-21 22:05 (3 perce) Mentés most Adatbázisok Alkalmazás Típus Méret Utolsó Érvényesítés Állapot nextcloud MariaDB 516.6 KB 22:05 131 tábla OK nextcloud MariaDB 504.7 KB 22:05 131 tábla OK zipline PostgreSQL 39.8 KB 22:05 17 tábla OK Alkalmazások mentési állapota BentoPDF Konfig ▶ 1.']
22:08:57 backups_apps_page EN ['Backup — Apps — Felhom.eu Launcher Dashboard Apps Storage Drives Network storage Backup Overview Remote backup Apps Restore Sharing Network sharing System monitor Debug Settings System Notifications Security and access 0.261.0 Magyar English Sign out ↗ The hub connection is off — central monitoring is not running System monitor → Backup — Apps enkisfelhom.hu App backups (database + configuration) A detailed backup of each app — database dumps, settings and app files.', 'Independent of the full backup above, it can be restored per app.', 'Schedule Database backup 02:30 Next: tomorrow 02:30 Last database backup: 2026-09-21 22:05 (3 minutes ago) Back up now Databases App Type Size Last Validation Status nextcloud MariaDB 516.6 KB 22:05 131 tables OK nextcloud MariaDB 504.7 KB 22:05 131 tables OK zipline PostgreSQL 39.8 KB 22:05 17 tables OK Backup status of the apps BentoPDF Config ▶ Backup 1 Auto local Last: just now — Config Backup 2 rsync → scratch_hdd Daily Last successful: just now Done 13.2 KB Config Restore files Full restore from the copy Settings Backup 3 Not set up remote (offsite) No remote backup target set up Settings Gitea Config + Data ▶ Backup 1 Auto local Last: 3 minutes ago — Config &#43; Data Backup 2 Backup 1 auto No 2nd (off-drive) copy Settings Backup 3 Not set up remote (offsite) No remote backup target set up Settings Glance Config + Data ▶ Backup 1 Auto local Last: 21 minutes ago — Config &#43; Data Backup 2 Backup 1 auto No 2nd (off-drive) copy Settings Backup 3 Not set up remote (offsite) No remote backup target set up Settings Nextcloud SCRATCH HDD 62.3 MB ▶ Backup 1 Auto local Last: 3 minutes ago DB &#43; Config Az alkalmazás fájljairól jelenleg nincs másolat — kapcsold be a távoli mentést vagy adj hozzá második meghajtót.']
22:08:57 Q4 · says WHAT happened: True
22:08:57 Q4 · says SINCE WHEN: True
22:08:57 Q4 · says WHICH COPY HOLDS WHAT: True
22:08:57 Q4 · says WHAT TO PRESS: True
22:08:57 Q4 · the same in ENGLISH: True
22:08:57 Q4 · IS THE SENTENCE ENGLISH ON THE ENGLISH PAGE (R-606): {'hungarian_fragments_found_on_the_english_page': ['friss', 'alkalmaz', 'verzió', 'vissza'], 'english_fragments_found (control)': ['update', 'restore', 'backup']}
22:08:57 [2] every app still on the box — front door and badge, after a rescan
22:09:03 bentopdf state=running door=200 badge=['Frissítés elérhető — ma'] refs_equal=False
22:09:03 gitea state=running door=200 badge=['Naprakész'] refs_equal=True
22:09:03 glance state=stopped door=404 badge=['Frissítés elérhető — ma'] refs_equal=False
22:09:03 nextcloud state=running door=404 badge=['Naprakész'] refs_equal=True
22:09:03 opengist state=running door=302 badge=['Naprakész'] refs_equal=True
22:09:03 privatebin state=running door=200 badge=['Frissítés elérhető — ma'] refs_equal=False
22:09:03 uptime-kuma state=running door=302 badge=['Naprakész'] refs_equal=True
22:09:03 vaultwarden state=running door=200 badge=['Naprakész'] refs_equal=True
22:09:03 wishlist state=running door=307 badge=['Naprakész'] refs_equal=True
22:09:03 zipline state=unhealthy door=301 badge=['Naprakész'] refs_equal=True
22:09:03 written -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/bad-days/P4-morning-after/result.json
############################################## 22:09:03 14/15 B6 — the way out FORWARDS: a held app meets a fixed newer version
22:09:04 ==== B6: a held app meets a FIXED newer version
22:09:06 before: state=stopped phase=None hold='A(z) glance frissítése 2026-09-21 21:53-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:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.' err=None
22:09:06 [5] drill commit b3e25e3498ad: glance localhost:5000/drill/glance:1.0.1 -> localhost:5000/drill/glance:1.0.2 (push rc=0)
22:09:11 badge HU after the fix is published: [{'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'}]
22:09:11 badge EN after the fix is published: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
22:09:11 press Update on the HELD app: http=409 reason='held' :: A(z) glance frissítése 2026-09-21 21:53-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:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.
22:09:13 the household's own door answers http=404
############################################## 22:09:13 15/15 DONE — teardown is run separately and deliberately (phase5_teardown.py)
22:09:13 all steps attempted