9c69b3ff07
gates / gates (push) Successful in 27s
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
383 lines
12 KiB
JSON
383 lines
12 KiB
JSON
{
|
||
"leg": "B2",
|
||
"app": "bentopdf",
|
||
"edge": "localhost:5000/drill/pdf:1.0.0 -> localhost:5000/drill/pdf:1.0.1 (tag absent from the store)",
|
||
"badges": {
|
||
"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"
|
||
}
|
||
],
|
||
"en": [
|
||
{
|
||
"title": "A newer version of this app is available. Select the Update button to start it.",
|
||
"text": "Update available — today"
|
||
}
|
||
]
|
||
},
|
||
"phases": {
|
||
"accepted": true,
|
||
"http": "202",
|
||
"phases": [
|
||
{
|
||
"t": 0.0,
|
||
"phase": "safety-dump",
|
||
"label": "Adatbázis pillanatkép…",
|
||
"updating": true,
|
||
"error": null,
|
||
"hold": null
|
||
},
|
||
{
|
||
"t": 1.0,
|
||
"phase": "failed",
|
||
"label": "A frissítés nem sikerült",
|
||
"updating": false,
|
||
"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": null
|
||
}
|
||
],
|
||
"duration_s": 3.1,
|
||
"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": null,
|
||
"state": "running"
|
||
},
|
||
"before": {
|
||
"label": "before",
|
||
"at": "2026-09-21T21:57:06",
|
||
"state": "running",
|
||
"updating": false,
|
||
"update_phase": null,
|
||
"update_error": null,
|
||
"hold_reason": null,
|
||
"observables": {
|
||
"pinned_images": {
|
||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||
},
|
||
"installed_images": {
|
||
"bentopdf": "ghcr.io/alam00000/bentopdf:v2.8.6"
|
||
},
|
||
"catalog_images": null,
|
||
"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"
|
||
]
|
||
}
|
||
},
|
||
"after": {
|
||
"label": "after",
|
||
"at": "2026-09-21T21:57:17",
|
||
"state": "running",
|
||
"updating": false,
|
||
"update_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": null,
|
||
"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"
|
||
]
|
||
}
|
||
},
|
||
"old_version_still_serving": true,
|
||
"time_to_steady_s": 3.4,
|
||
"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 Adatbázis pillanatkép… 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ó ↗"
|
||
],
|
||
"en": [
|
||
"BentoPDF — 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: Glance (stopped) System monitor → The hub connection is off — central monitoring is not running System monitor → ← Apps BentoPDF Running Update available — today Open ↗ Log Export Settings Adatbázis pillanatkép… A privacy-first PDF toolbox - your files never leave your own server ~100M RAM tools Runs on Pi Move to another storage You can move this app’s data to another connected storage.",
|
||
"Merge, split and rotate PDFs Convert PDFs to images and images to PDFs Password protection and encryption Add a watermark to a document Everything happens on your own server - no file goes to an outside service First steps Open pdf.DOMAIN in your browser Choose what you want to do Upload the PDF and start it Documentation Official documentation ↗"
|
||
]
|
||
},
|
||
"second_press": {
|
||
"http": "202",
|
||
"body": {
|
||
"ok": true,
|
||
"data": {
|
||
"accepted": true,
|
||
"completed": false
|
||
},
|
||
"message": "Frissítés elindult – az állapot a kártyán követhető"
|
||
}
|
||
},
|
||
"events": {
|
||
"path": "/api/debug/dump",
|
||
"body": {
|
||
"alerts": [
|
||
{
|
||
"ID": "deadapp-4a2adff2",
|
||
"Level": "warning",
|
||
"Message": "Telepített alkalmazás nem fut: Glance (stopped)",
|
||
"MessageKey": "alert.deadapp.single_state",
|
||
"MessageArgs": [
|
||
"Glance",
|
||
"stopped"
|
||
],
|
||
"Link": "/monitoring",
|
||
"LinkText": "Rendszermonitor",
|
||
"LinkTextKey": "alert.link.monitoring",
|
||
"PageOnly": null,
|
||
"Inline": false
|
||
},
|
||
{
|
||
"ID": "hub-disabled",
|
||
"Level": "warning",
|
||
"Message": "Hub kapcsolat kikapcsolva — a központi monitoring nem aktív",
|
||
"MessageKey": "alert.hub.disabled",
|
||
"MessageArgs": null,
|
||
"Link": "/monitoring",
|
||
"LinkText": "Rendszermonitor",
|
||
"LinkTextKey": "alert.link.monitoring",
|
||
"PageOnly": null,
|
||
"Inline": false
|
||
}
|
||
],
|
||
"backup": {
|
||
"enabled": true,
|
||
"last_db_dump": {
|
||
"success": true,
|
||
"time": "2026-09-21T19:57:02.581012164Z"
|
||
},
|
||
"running": false
|
||
},
|
||
"controller": {
|
||
"config_hash": "ce32a35aaefc739e2a23db3df1c962a77bc672aa723119939a61af9a771a5a0e",
|
||
"logging_level": "debug",
|
||
"pid": 1,
|
||
"uptime_seconds": 6457,
|
||
"version": "0.261.0"
|
||
},
|
||
"health": {
|
||
"issues": null,
|
||
"status": "ok",
|
||
"warnings": null
|
||
},
|
||
"hub": {
|
||
"enabled": false,
|
||
"url": ""
|
||
},
|
||
"network": {
|
||
"default_route": "error: docker exec ip -4 route show default: exit status 1",
|
||
"dns_servers": "error: docker exec cat /etc/resolv.conf: exit status 1",
|
||
"interfaces": "error: docker exec ip -o link show: exit status 1",
|
||
"lan_address": ""
|
||
},
|
||
"notifications": {
|
||
"cooldown_hours": 6,
|
||
"email": "",
|
||
"enabled_events": [
|
||
"backup_failed",
|
||
"db_dump_failed",
|
||
"disk_warning",
|
||
"disk_critical",
|
||
"storage_disconnected",
|
||
"node_down",
|
||
"health_critical",
|
||
"expected_backup_missed",
|
||
"expected_dbdump_missed",
|
||
"offbox_enlarge_blocked"
|
||
]
|
||
},
|
||
"scheduler": [
|
||
{
|
||
"interval": "10s",
|
||
"last_run": "2026-09-21T19:57:13.329915946Z",
|
||
"name": "status-refresh",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "2m0s",
|
||
"last_run": "2026-09-21T19:55:43.382300008Z",
|
||
"name": "stack-scan",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "10s",
|
||
"last_run": "2026-09-21T19:57:13.336537811Z",
|
||
"name": "health-probes",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "5m0s",
|
||
"last_run": "2026-09-21T19:54:43.454536004Z",
|
||
"name": "system-health",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "30s",
|
||
"last_run": "2026-09-21T19:57:13.359505204Z",
|
||
"name": "deadapp-check",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "30s",
|
||
"last_run": "2026-09-21T19:57:13.323014613Z",
|
||
"name": "ring-spill",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"name": "db-dump",
|
||
"running": false,
|
||
"schedule": "02:30",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"interval": "5m0s",
|
||
"last_run": "2026-09-21T19:54:43.304884532Z",
|
||
"name": "offsite-credential-retry",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"interval": "5m0s",
|
||
"last_run": "2026-09-21T19:54:43.427874885Z",
|
||
"name": "backup-cache",
|
||
"running": false,
|
||
"type": "every"
|
||
},
|
||
{
|
||
"name": "tier2-backup",
|
||
"running": false,
|
||
"schedule": "03:30",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "offbox-backup",
|
||
"running": false,
|
||
"schedule": "04:15",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "offsite-abandon-sweep",
|
||
"running": false,
|
||
"schedule": "05:10",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "offsite-integrity",
|
||
"running": false,
|
||
"schedule": "06:00",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "offsite-proof",
|
||
"running": false,
|
||
"schedule": "05:30",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "metrics-prune",
|
||
"running": false,
|
||
"schedule": "04:00",
|
||
"type": "daily"
|
||
},
|
||
{
|
||
"name": "fill-watch",
|
||
"running": false,
|
||
"schedule": "03:30",
|
||
"type": "daily"
|
||
}
|
||
],
|
||
"self_update": {
|
||
"enabled": false
|
||
},
|
||
"stacks": {
|
||
"deployed": 7,
|
||
"list": [
|
||
{
|
||
"containers": [
|
||
"bentopdf"
|
||
],
|
||
"display_name": "BentoPDF",
|
||
"name": "bentopdf",
|
||
"state": "running"
|
||
},
|
||
{
|
||
"containers": [
|
||
"gitea"
|
||
],
|
||
"display_name": "Gitea",
|
||
"name": "gitea",
|
||
"state": "running"
|
||
},
|
||
{
|
||
"containers": [],
|
||
"display_name": "Glance",
|
||
"name": "glance",
|
||
"state": "stopped"
|
||
},
|
||
{
|
||
"containers": [
|
||
"nextcloud",
|
||
"nextcloud-db",
|
||
"nextcloud-redis"
|
||
],
|
||
"display_name": "Nextcloud",
|
||
"name": "nextcloud",
|
||
"state": "running"
|
||
},
|
||
{
|
||
"containers": [
|
||
"opengist"
|
||
],
|
||
"display_name": "OpenGist",
|
||
"name": "opengist",
|
||
"state": "running"
|
||
},
|
||
{
|
||
"containers": [
|
||
"vaultwarden"
|
||
],
|
||
"display_name": "Vaultwarden",
|
||
"name": "vaultwarden",
|
||
"state": "running"
|
||
},
|
||
{
|
||
"containers": [
|
||
"zipline",
|
||
"zipline-postgres"
|
||
],
|
||
"display_name": "Zipline",
|
||
"name": "zipline",
|
||
"state": "unhealthy"
|
||
}
|
||
],
|
||
"running": 9,
|
||
"stopped": 0
|
||
},
|
||
"storage": [
|
||
{
|
||
"decommissioned": false,
|
||
"disconnected": false,
|
||
"label": "SCRATCH HDD",
|
||
"path": "/mnt/felhom-drives/scratch_hdd",
|
||
"total_gb": 937.8239631652832,
|
||
"used_gb": 48.98271942138672,
|
||
"used_percent": 5.223018534956538
|
||
}
|
||
]
|
||
}
|
||
}
|
||
} |