Files
felhom.eu/documentation/audits/release-2026-11-03/part1/README.md
T
admin 57d46201d6
gates / gates (push) Successful in 2m4s
Release 2026-11-03: controller 0.350.0 evidence (load test, walks, restore, floor); golden 0.350.0 baked (sha 082e2e040de5); hub v0.179.0 heading
Traefik's memory on 9202: v3.7.16 18.7 -> 79.0 MiB after 920 connections, not released; v3.7.17 flat near 25 MiB for 25,116 connections.
Golden 0.350.0 waits for its fresh-install proof and the operator's vouch. Not 0.349.0.
2026-11-03 08:43:56 +01:00

3.1 KiB
Raw Blame History

Part 1 — controller 0.350.0, 2026-11-03

Image: 0.350.0 from 5c336d82 (CI 2568 green), sha256:9ee53908e6d95f0340c41bf4eaba954280084a8e6927de59779440e3551df261. rc.1 from 13e34d4 (CI 2562 green), sha256:cbf4d42fd4c86a30854a2f4202b06b6b97073380e0de0bd2fffed524021fd8d4.

The fix itself (9202 only, from the LAN: the demo-hp host; traefik_load.py, load-before.txt, load-after.txt)

Four processes open short TLS connections (84 a second), each one request to the dashboard route with Authorization: NTLM …; the controller answers 302 (so the request reached a backend). Memory: anon of Traefik's cgroup, every 10 s. The load stops at twice the start figure or at 300 s.

v3.7.16 (traefik:v3.7.16) v3.7.17 (traefik:v3.7.17)
anon at start 18.7 MiB 16.2 MiB
after about 920 connections 79.0 MiB (stopped: over twice the start) 25.3 MiB
after 25,116 connections, 300 s not run: the bound stopped it at 11 s 25.4 MiB, flat (24.9–26.3 all the way)
30 s after the load stopped 80.0 MiB, not released 25.4 MiB

So the fix is proven by behaviour, not only by the version: about 65 KiB per connection on the old one, and nothing per connection on the new one. Limit of the proof: the old curve has one point, because the bound stopped it, and it ran on a Traefik seven hours up, the new one on a Traefik seconds old.

The boxes (walk-9202-rc1.txt, walk-3boxes.txt, public-names.txt, https-only.txt, files-signin-*.txt, rollout-wait.txt)

Per-box floors 07:04:24 UTC; all three on 0.350.0 with Traefik v3.7.17 by 07:05:06. Traefik's image id sha256:a72cb2f4… on all four boxes. Walk green on 9202 (rc.1), Tester 1, demo-hp, demo-felhom: 0 unhealthy, 0 refusals, 0 ERROR lines, login and file manager 200, every app route answers through Traefik; 26 public names from outside: all 200/302/401; https_only_check.py green.

File manager sign-in (dashboard → one-time pass → files cookie → a listing through Traefik 200; without the cookie 401): 9202, Tester 1, demo-hp. Not driven on demo-felhom: it is the lived-in box and the brief allows no hand step on it; its anonymous file manager page reads 200.

R-1351 and R-1323 did not fire on these starts (0 ERROR lines): as last night, no live difference between old and new for them; test proof only.

One local restore on Tester 1, release build (restore-tester1.txt, restore_tester1.py)

The household's button, privatebin, last night's copy: a marker written after the copy is gone, the 5 files read the same (hash 857384e0f0cd2b8f), front door 200, state running, no hold, 62.8 s, 0 ERROR lines. A plain restore: it exercises the restore path on the release build, not R-1347's or R-1348's staged faults (those were proven last night on the test image of the same code).

The floor (global-floor.txt, global-floor-readback.txt, floors-cleared.txt, watch-30min.txt)

Global floor 0.350.0 / MinAgent 0.158.1 at 07:18:16 UTC, its own save, 303 floor_set; the hub log and the configuration page agree. Per-box floors cleared 07:18:18.