Server leaks terminal_writers rows on stream close (32-per-connection cap) #110

Open
opened 2026-10-08 14:13:08 +00:00 by kayg · 0 comments
Owner

Found by the canvas-product lane (2026-10-08): the server caps terminal_writers rows at 32 per WebSocket connection and never deletes a row when its stream closes, so a long-lived page that opens and closes more than 32 windows hits the cap. Fix: delete (or recycle) the row on stream Close and on connection end; add a regression test that opens and closes 100 streams on one connection; check no other per-connection table leaks the same way. The client rotates the connection meanwhile as a workaround. Related: #107 (canvas streams).

Found by the canvas-product lane (2026-10-08): the server caps terminal_writers rows at 32 per WebSocket connection and never deletes a row when its stream closes, so a long-lived page that opens and closes more than 32 windows hits the cap. Fix: delete (or recycle) the row on stream Close and on connection end; add a regression test that opens and closes 100 streams on one connection; check no other per-connection table leaks the same way. The client rotates the connection meanwhile as a workaround. Related: #107 (canvas streams).
Sign in to join this conversation.
No labels
launch-qa
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
kayg/infraternal#110
No description provided.