From cbf8146bda6087bd0c6815a73a90cec2234a4856 Mon Sep 17 00:00:00 2001 From: JackDoan Date: Wed, 14 Oct 2026 12:56:12 -0500 Subject: [PATCH] udp: Buffer a fragmented handshake burst in the tester, so crossing bursts cannot deadlock the e2e router --- udp/udp_tester.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/udp/udp_tester.go b/udp/udp_tester.go index db90b370..ffa643c7 100644 --- a/udp/udp_tester.go +++ b/udp/udp_tester.go @@ -85,8 +85,11 @@ type TesterConn struct { func NewListener(l *slog.Logger, s Settings) (Conn, error) { c := &TesterConn{ - RxPackets: make(chan *Packet, 10), - TxPackets: make(chan *Packet, 10), + // A fragmented handshake message is a burst of a dozen packets. The + // router moves packets one at a time, so if both directions held fewer + // than a burst each, two bursts crossing would deadlock it. + RxPackets: make(chan *Packet, 64), + TxPackets: make(chan *Packet, 64), done: make(chan struct{}), l: l, }