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
58 lines
1.7 KiB
JSON
58 lines
1.7 KiB
JSON
{
|
|
"harness_version": 1,
|
|
"app": "romm",
|
|
"venue": "guest 9202 demo-hp-scratch, controller 0.261.0",
|
|
"class": "db-mariadb",
|
|
"from": {
|
|
"romm": "rommapp/romm:5.0.0",
|
|
"romm-db": "mariadb:11.4",
|
|
"romm-redis": "redis:7-alpine"
|
|
},
|
|
"to": {
|
|
"romm": "rommapp/romm:5.3.0",
|
|
"romm-db": "mariadb:11.4",
|
|
"romm-redis": "redis:7-alpine"
|
|
},
|
|
"verdict": "proven",
|
|
"seed_read_before": true,
|
|
"seed_read_after": true,
|
|
"healthy_after": true,
|
|
"migration_observed": "romm | \u001b[0;32mINFO: \u001b[0;34m[RomM]\u001b[0;95m[init]\u001b[0;36m[2026-09-21 21:29:29]\u001b[0;00m Running database migrations",
|
|
"abort": "not-attempted",
|
|
"abort_detail": null,
|
|
"duration_s": 60.6,
|
|
"measured_at": "2026-09-21T19:27:03.627376+00:00",
|
|
"evidence": "apps/romm/",
|
|
"notes": [],
|
|
"badge_catchup_seconds": 4.4,
|
|
"observables_after": {
|
|
"pinned_images": {
|
|
"romm": "rommapp/romm:5.3.0",
|
|
"romm-db": "mariadb:11.4",
|
|
"romm-redis": "redis:7-alpine"
|
|
},
|
|
"installed_images": {
|
|
"romm": "rommapp/romm:5.3.0",
|
|
"romm-db": "mariadb:11.4",
|
|
"romm-redis": "redis:7-alpine"
|
|
},
|
|
"catalog_images": {
|
|
"romm": "rommapp/romm:5.3.0",
|
|
"romm-db": "mariadb:11.4",
|
|
"romm-redis": "redis:7-alpine"
|
|
},
|
|
"live_compose_image_lines": [
|
|
"image: rommapp/romm:5.3.0",
|
|
"image: mariadb:11.4",
|
|
"image: redis:7-alpine"
|
|
],
|
|
"docker_inspect": [
|
|
"romm rommapp/romm:5.3.0 running=true restarts=0",
|
|
"romm-db mariadb:11.4 running=true restarts=0",
|
|
"romm-redis redis:7-alpine running=true restarts=0"
|
|
]
|
|
},
|
|
"final_phase": "done",
|
|
"hold_reason": null,
|
|
"update_error": null
|
|
} |