Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed3927f03a |
@@ -1,24 +1,29 @@
|
|||||||
# REPORT — D53: the hub learns which apps are held — committed, NOT released (2026-10-26 evening)
|
# REPORT — controller v0.346.0 RELEASED; the line-test hold fixed the same day (2026-10-27, attended)
|
||||||
|
|
||||||
**Plain words first.** A held app (stopped on purpose until a person acts) now reaches the hub: the box sends one
|
**Plain words first.** Controller 0.346.0 is out on every box (global floor 15:37 CET, MinAgent 0.158.1). It carries
|
||||||
message when a hold appears or changes, one when it goes, and repeats every hold once a day. The hub shows the list
|
last night's data-safety fixes and one fix made today: a box that seeds torrents all day now gets its weekly line test.
|
||||||
and mails the operator after a waiting time (felhom.eu `7e57e824`). Not released (this run allows no release).
|
The old hold asked the line test too early — qBittorrent keeps sending for about 14 seconds after it is slowed — so
|
||||||
|
the test was refused every time. Now the controller waits until the app has really slowed down.
|
||||||
|
|
||||||
## The change (`5bd03ad`, CI 2377 ✓)
|
## What 0.346.0 carries
|
||||||
|
|
||||||
- `internal/holdreport`: one observer of the hold store, ticked every minute by the scheduler (`hold-report`). It sends
|
D53 held-app reports (R-1291), R-1220, R-1218 + R-1219, R-1187 (a)(b)(d)(f)(g) and the two import defects, R-1298,
|
||||||
`app_held` (stack, reason, since, the hold's sentence) for a new or changed hold, `app_hold_cleared` when a hold is
|
Go 1.27.3 (R-972), and **R-1250** (`710ceac`). CHANGELOG `## v0.346.0`.
|
||||||
gone — also one cleared while the controller was down (`settings.reported_holds`) — and every hold again daily and at
|
|
||||||
start. Severity info.
|
|
||||||
- `settings.RestoreHold.Why()` / `WireReason()`: the hold sentence lives in one place (`holdWhy` calls it); the legacy
|
|
||||||
empty reason is sent as `restore_failed`.
|
|
||||||
- Tests `internal/holdreport/holdreport_test.go` (8). Red-proved: an inert `Tick` failed all six behaviour tests; the
|
|
||||||
scheduler line commented out failed the wiring test.
|
|
||||||
|
|
||||||
## Live proof (felhom.eu `documentation/audits/d53-held-apps-2026-10-26/`)
|
## R-1250 (`710ceac`)
|
||||||
|
|
||||||
9202 ran a local-only image of this commit (`0.346.0-d53test`, never pushed to the registry) against a test hub process.
|
- Before (0.345.1 on demo-hp 9201, a throwaway qBittorrent seeding to DooPlex): four holds 11:36–12:21 CET, each
|
||||||
A throwaway Radicale, crashed seven times, was stopped and held by the box (17:37:52Z); `app_held` reached the hub at the
|
refused „not quiet" 4.0–4.2 Mbit/s. Per-second reads: qBittorrent reports its limit 1024 within a second but sends
|
||||||
next tick; one operator reminder after the 3-minute test grace; the household's Start lifted the hold and
|
at full speed ~14 s; the forwarder and UDP queues hold nothing (felhom.eu `audits/linetest-2026-10-27/`).
|
||||||
`app_hold_cleared` removed the row. The first tick also reported four holds 9202 has carried since 2026-09-24 for apps
|
- Fix: `upwatch.waitDrained` — after the hold, poll each held app's own upload (`Holdable.UploadRate`: qBittorrent
|
||||||
that are not installed (felhom.eu R-1298). 9202 is back on 0.343.0 with its own config.
|
`up_info_speed`, Transmission `uploadSpeed`) until ≤ 16 KiB/s twice, 2 s apart; at most 90 s; an unreadable speed
|
||||||
|
waits 20 s; then ask the agent. Tests `linehold_r1250_drain_test.go` (five), red-proved by four mutations.
|
||||||
|
- After (0.346.0-rc.1 on 9201): held 13:39:56 → slowed after 22 s → 94.5 Mbit/s → the limit back exactly; the 50 % rule
|
||||||
|
kept the normal slot (0.15 % move).
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
rc.1 by hand on 9201 and Tester 1 (9202 was in another session's use); `b1b9be3` (CI 2423) built as 0.346.0
|
||||||
|
(`sha256:3d910b03…`); per-box floors 15:09 CET → all three on 0.346.0 („update successful"); box walk green (start
|
||||||
|
logs 0 errors, every app healthy, `https_only_check.py` green, held-apps lists match 0 = 0); global floor 15:37 CET,
|
||||||
|
30-min watch. R-1218's live proof was waived by the operator (felhom.eu `09` §3 decision 270).
|
||||||
Reference in new issue
Block a user