gates / gates (push) Successful in 2m4s
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.
39 lines
3.1 KiB
Markdown
39 lines
3.1 KiB
Markdown
# 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.
|