Observers need a total-lifetime bound, not only an idle one #88

Open
opened 2026-09-05 19:09:42 +00:00 by a73x · 0 comments
a73x commented 2026-09-05 19:09:42 +00:00 (Migrated from git.a73x.sh)

Since d2323cb8 a dial the observer table cannot hold waits in the kernel backlog instead of being accepted and closed. observer_idle_ms drops a peer that sends nothing for 10 s, but a peer that trickles bytes without ever completing an attach frame holds a slot indefinitely and the queue behind it is silent. Add an accepted_ms per observer and drop past a total cap. Nothing first-party trickles, so this is hardening, not a repro. Also pin td.srv.observer_idle_ms = 60_000 in the burst test in server_test_attach.zig so the idle drop cannot be what seats the eighth peer.


Migrated from git-collab issue 3b6c9a8d933824fe5086e21c3631722ea4ea8dbe.

Original author: a73x dev@a73x.sh.

Since d2323cb8 a dial the observer table cannot hold waits in the kernel backlog instead of being accepted and closed. observer_idle_ms drops a peer that sends nothing for 10 s, but a peer that trickles bytes without ever completing an attach frame holds a slot indefinitely and the queue behind it is silent. Add an accepted_ms per observer and drop past a total cap. Nothing first-party trickles, so this is hardening, not a repro. Also pin td.srv.observer_idle_ms = 60_000 in the burst test in server_test_attach.zig so the idle drop cannot be what seats the eighth peer. --- Migrated from git-collab issue `3b6c9a8d933824fe5086e21c3631722ea4ea8dbe`. Original author: a73x <dev@a73x.sh>.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
a73x/mux#88
No description provided.