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

39 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.