22439b0e43
gates / gates (push) Successful in 30s
A (R-630, the P1): paperless-ngx, same app same button - failed at +313.0s with the app stopped under v0.261.0, done at +53.4s now, with no "no probe container" warning because the explicit healthcheck.container resolved the target. B (R-633): the busy guard fires - RemoveStack REFUSED (busy): a backup or restore is running - and the live proof caught it answering HTTP 500, because router.go maps remove errors by grepping the error TEXT. v0.262.1 makes it a typed error and a 409; re-proven live. C (R-634 half): a half-state with app.yaml on disk and deployed=false answered 200, leftovers NONE. Under v0.261.0 the same call said "not deployed". F (R-614): phase done before the remove, no phase at all after redeploying the same name. Also: the first B run proved NOTHING and nearly went down as a pass - the refusal came from the pre-existing "still running" check, not the new guard. Recorded. 09 6.1 and 8.8, the capability map, and STATUS updated. R-625 and R-634's mechanism are named as owed, not half-done. Register 325. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
133 lines
4.8 KiB
JSON
133 lines
4.8 KiB
JSON
{
|
|
"A": {
|
|
"scenario": "A (R-630)",
|
|
"app": "paperless-ngx",
|
|
"before": {
|
|
"state": "running",
|
|
"front_door": "302",
|
|
"containers": [
|
|
"paperless-webserver|Up About a minute (healthy)",
|
|
"paperless-redis|Up About a minute (healthy)",
|
|
"paperless-postgres|Up About a minute (healthy)"
|
|
]
|
|
},
|
|
"phases": {
|
|
"accepted": true,
|
|
"http": "202",
|
|
"phases": [
|
|
{
|
|
"t": 0.0,
|
|
"phase": "backing-up",
|
|
"label": "Biztonsági mentés készül a frissítés előtt…",
|
|
"updating": true,
|
|
"error": null,
|
|
"hold": null
|
|
},
|
|
{
|
|
"t": 21.5,
|
|
"phase": "pulling",
|
|
"label": "Új verzió letöltése…",
|
|
"updating": true,
|
|
"error": null,
|
|
"hold": null
|
|
},
|
|
{
|
|
"t": 22.6,
|
|
"phase": "starting",
|
|
"label": "Indítás az új verzióval…",
|
|
"updating": true,
|
|
"error": null,
|
|
"hold": null
|
|
},
|
|
{
|
|
"t": 23.6,
|
|
"phase": "verifying",
|
|
"label": "Működés ellenőrzése…",
|
|
"updating": true,
|
|
"error": null,
|
|
"hold": null
|
|
},
|
|
{
|
|
"t": 53.4,
|
|
"phase": "done",
|
|
"label": "Frissítve",
|
|
"updating": false,
|
|
"error": null,
|
|
"hold": null
|
|
}
|
|
],
|
|
"duration_s": 53.4,
|
|
"final_phase": "done",
|
|
"update_error": null,
|
|
"hold_reason": null,
|
|
"state": "running"
|
|
},
|
|
"wall_s": 53.7,
|
|
"after": {
|
|
"state": "running",
|
|
"front_door": "302"
|
|
},
|
|
"controller_says": "2026/09/22 19:33:55 update.go:996: [INFO] [stacks] update paperless-ngx: phase checking\n2026/09/22 19:33:55 update.go:996: [INFO] [stacks] update paperless-ngx: phase backing-up\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase safety-dump\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase pinning\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase pulling\n2026/09/22 19:34:17 update.go:996: [INFO] [stacks] update paperless-ngx: phase starting\n2026/09/22 19:34:18 update.go:996: [INFO] [stacks] update paperless-ngx: phase verifying\n2026/09/22 19:34:48 healthprobe.go:181: [DEBUG] Health probe paperless-ngx: HTTP GET :8000/ → 302 (4ms)"
|
|
},
|
|
"F": {
|
|
"scenario": "F (R-614)",
|
|
"app": "paperless-ngx",
|
|
"phase_before_remove": "done",
|
|
"after_remove_deployed": false,
|
|
"phase_after_redeploy": null,
|
|
"verdict": "clean"
|
|
},
|
|
"B": {
|
|
"scenario": "B (R-633/R-626)",
|
|
"app": "privatebin",
|
|
"snapshots": 1,
|
|
"restore_started": "{'ok': True, 'snapshot_id': 'helyi', 'snapshots': [{'time': '2026-09-22T19:41:55Z', 'short_id': 'helyi', 'tier': 1, 'drive_label': 'Belső SSD (rendszer)'}], 'http': 'HTTP/2 302', 'location': ['locatio",
|
|
"remove_during_restore": {
|
|
"http": "409",
|
|
"answer": {
|
|
"ok": false,
|
|
"error": "stack \"privatebin\" is still running — stop it first before removing"
|
|
}
|
|
},
|
|
"refused_as_expected": true,
|
|
"remove_after_restore": {
|
|
"http": "200",
|
|
"verified": true,
|
|
"reappeared": null
|
|
},
|
|
"containers_60s_later": ""
|
|
},
|
|
"C": {
|
|
"scenario": "C (R-634)",
|
|
"app": "sparkyfitness",
|
|
"setup": "total 28\ndrwxr-xr-x 2 root root 4096 Sep 22 19:43 .\ndrwxr-xr-x 57 root root 4096 Sep 13 20:22 ..\n-rw-r--r-- 1 root root 4737 Sep 20 14:32 .felhom.yml\n-rw-r--r-- 1 root root 41 Sep 22 19:43 app.yaml\n-rw-r--r-- 1 root root 4936 Sep 22 19:43 docker-compose.yml",
|
|
"before": {
|
|
"deployed": false,
|
|
"state": "not_deployed"
|
|
},
|
|
"remove": {
|
|
"http": "200",
|
|
"answer": "{'ok': True, 'data': {'removed': 'sparkyfitness', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'backup_paths_removed': ['/mnt/sys_drive/felhom-data/backups/primary/sparkyfitness (48K)'], 'verified': True}, 'message': 'Stack sparkyfitness removed'}"
|
|
},
|
|
"accepted": true,
|
|
"leftovers": "NONE"
|
|
},
|
|
"B2": {
|
|
"scenario": "B2 (R-633) — the BUSY guard, reached deliberately",
|
|
"app": "privatebin",
|
|
"state_before": "stopped",
|
|
"backup_started": {
|
|
"http": "200",
|
|
"answer": "{'ok': True, 'message': 'Mentés elindítva'}"
|
|
},
|
|
"remove_during_backup": {
|
|
"http": "409",
|
|
"answer": {
|
|
"ok": false,
|
|
"error": "Az alkalmazáson mentés vagy visszaállítás fut. Várd meg, amíg befejeződik."
|
|
}
|
|
},
|
|
"refused_by_busy_guard": true,
|
|
"controller_says": "2026/09/22 19:49:46 delete.go:557: [ERROR] [stacks] RemoveStack privatebin REFUSED (busy): a backup or restore is running (single-flight held)\n2026/09/22 19:51:32 delete.go:557: [ERROR] [stacks] RemoveStack privatebin REFUSED (busy): a backup or restore is running (single-flight held)"
|
|
}
|
|
} |