Red-proofs — night 2026-10-28
Every new test was seen failing before the fix landed, or by breaking the fix on purpose (a string swap, run, swapped
back — tools/mutate.py, tools/mutaten.py). The failure line is quoted as the test printed it.
R-1256 — controller 342a394
| Test | How it was red | Failure line |
|---|---|---|
TestR1256_H4_AFailedDefinitionWriteStartsTheAppAtItsLiveDefinition |
before the fix | definition writes [[example/app:0.96.0 postgres:16-alpine]] — want the snapshot's, then the LIVE one written back |
TestR1256_H4_AFailedWriteBackHoldsTheApp |
before the fix | the app was STARTED although its live definition could not be written back — calls [stop recreate start] |
TestR1256_H5_APutBackWhoseStopFailsDoesNotPourAndKeepsTheCopy |
before the fix | the copy was poured (map[immich_pgdata:LIVE bytes of immich_pgdata]) / volumes removed ([immich_newvol]) after a FAILED stop |
TestR1256_H5_AFailedDefinitionWriteBackKeepsTheCopy |
before the fix | the copy must be KEPT after a failed put-back (D20) |
TestR1256_H5_ACrashPutBackWhoseStopFailsRefuses |
before the fix | a put-back whose stop failed must return an error |
TestR1256_H5_AVolumeThatCannotBeRemovedIsNotMergedInto |
before the fix | restored 2, err <nil> — want 1 and an error naming app_busy |
TestR1256_H6_ARestoreCannotBeginBesideAMirrorThatStartedAfterTheCheck |
mutation: TryBeginRestoreOp records without asking | the restore began beside a running mirror: busy="" app="" |
TestR1256_H6_TheBeginRefusesWithTheCopySentence |
same mutation | the begin must refuse with the copy named; ok=true "" |
TestR1256_H6_NoHandlerBeginsARestoreUnchecked |
mutation: one direct BeginRestoreOp in handlers.go |
handlers.go:2242:2: a direct BeginRestoreOp — begin through s.beginRestoreOp (R-1256 H6) |
TestR1256_H6_AKeptLoadAtInstallIsRefusedWhileASecondDriveCopyRuns |
mutation: the old RestoreStatus/IsRunning check + plain begin in both loads | a load during a second-drive copy: code 202, want 409 |
TestR1256_H8_OnlyAnUnusedOldCopyIsRemoved |
mutations: no hold check / no marker check / no age check | removed [.../held/... .../unused/... .../waiting/...]; removed [.../named/... .../unused/...]; removed [.../unused/... .../young/...] |
TestR1256_H8_NothingIsRemovedDuringARestoreOrWithAnUnreadableMarker |
mutations: no busy check / an unreadable marker read as empty | removed [.../app/...] during a restore; removed [.../app/...] with an unreadable marker |
TestR1256_H8_TheSweepIsWiredAtStartup |
mutation: the job's call removed | SweepUnusedRestoreCopies is never called |
R-1255 — hub (felhom.eu 1ee6d5a5)
| Test | How it was red | Failure line |
|---|---|---|
TestR1255_TheCarryTakesTheNewestPackageThatHasAHash |
before the fix | carry = {Outcome:1 FromHost:T-old ToHost:T-new ResticPwSHA256: …} — want the package with the household's hash (SHA_REAL) |
TestR1255_APurgeNeverDeletesAPackageAReusedPathStillNeeds |
before the fix | purge removed 2 err=<nil> — want exactly the deleted copy's package (key 1) |
TestR1255_TwoSetAsidesOnOneDayGetTwoNames |
before the fix | two set-asides on one day share the name "/home/felhom-repo.orphaned-20261028" |
TestR1255_WithNoHashedPackageTheNewestIdentityIsStillCarried |
a guard of today's behaviour (green before and after, on purpose) | — |
R-1254 — agent 5ddd124, controller e33cffa
| Test | How it was red | Failure line |
|---|---|---|
TestR1254_ALostAnswerAtTheClaimIsASuccessWhenTheHubHoldsTheNewPackage (agent) |
before the fix | claim after a lost answer, the hub holding the new package: 502 {"ok":false,"error":"… — the previous code still works; try again"} |
TestR1254_AnUnknownOutcomeAtTheClaimPromisesNothing (agent) |
before the fix | claim with an unknown outcome: 502 … |
TestR1254_ALostAnswerAtTheConfirmIsASuccessWhenTheHubHoldsTheNewPackage (agent) |
before the fix | confirm after a lost answer: 502 (opens: true) — want 200 |
TestR1254_HubHoldsComparesTheIdentityBlob (agent) |
mutation: „held" whenever the hub has any package | the hub holds another package: held=true err=<nil> |
TestR1254_AnUnknownConfirmOutcomePromisesNothing (controller) |
before the fix | hu: an unknown outcome promised the previous code: {"error":"Az új kódot nem sikerült elmenteni — a régi kódod továbbra is érvényes. …"} |
TestR1254_ClaimAndConfirmOutwaitTheAgentsUpload (controller) |
before the fix; and mutation: the claim through the 15 s client | escrowCallTimeout 15s must outlast …; a slow claim was abandoned: … Client.Timeout exceeded while awaiting headers |
R-528 — agent 6f933d6, controller eed23e7
| Test | How it was red | Failure line |
|---|---|---|
TestR528_GuestOOMKillsServesThisGuestsCountersOnly / …TheRouteAnswersTheTokensGuest (agent) |
mutations: a glob over every guest; parsing oom for oom_kill |
…cccc…:7 … want … (another guest's container); aaaa…:9 |
TestR528_AHostCounterAboveZeroIsAnOOMKillWhateverDockerSays (controller) |
before the fix | the inspect must ask for the container id …; the host-counted kill was not seen: [] |
TestR528_WithoutAHostCounterTheScanIsAsBefore (controller) |
before the fix | no host source: [{… Source:}] |
TestR528_HostOOMSourceBacksOffAnOldAgent (controller) |
mutation: no 404 back-off | an old agent was asked 3 times in 90 s, want 1 |
TestR528_HostOOMSourceIsWiredAtStartup (controller) |
mutation: the wiring line removed | the host OOM counter is never wired … |
Found walking the capability map — controller 20c5877
| Test | How it was red | Failure line |
|---|---|---|
TestAnActionOnANameThatIsNoAppIsA404 |
before the fix | stop of a name that is no app: 500 "A művelet nem hajtható végre: az alkalmazás beállításai nem menthetők." — want 404 |
R-1338 — catalog working tree (NOT pushed; the morning list)
| Test | How it was red | Failure line |
|---|---|---|
test_memory_live.py AnonLive / SoakSummary / TightMark |
mutations: return anon; the soak's peaks from anon_peak_pct; the mark reads anon_peak_pct first; no max(a, b); no cap at anon |
FAIL: test_the_measured_spike, FAIL: test_the_mark_reads_the_live_figure, FAIL: test_the_bench_mark_prefers_the_live_figure, FAIL: test_it_errs_high_never_above_anon |