Skip to main content

WEDGE_DEAD

Constant WEDGE_DEAD 

Source
pub(crate) const WEDGE_DEAD: Duration;
Expand description

How long a connection may write nothing before a watchdog outside its future ends it.

The keepalive cannot watch its own task. Its beat is a branch in the connection’s own select!, so a task parked in an await never reaches it: no ping goes out, no reap happens, and the socket stays open while the server says nothing. That is the 2026-11-09 freeze, 26.7 minutes of silence with the process alive and the log’s last line a hook response.

The bound is on completed writes, not loop turns. The longest gap a healthy connection can leave between two of them is one write waiting out its whole bound (WRITE_BOUND) plus the snapshot encode this server does on the loop, which has no bound of its own; an idle connection still writes its keepalive ping every HEARTBEAT_EVERY. So the wedge bound is four write bounds: far above the slowest write measured (31.6 s) and above anything a giant seat’s encode has been seen to take, because a healthy connection reaped mid-record would redial into the same record for ever. Chosen, not measured: the number it changes for a person is how fast a connection wedged behind a stalled subsystem is let go.