Răsfoiți Sursa

udp: Buffer a fragmented handshake burst in the tester, so crossing bursts cannot deadlock the e2e router

JackDoan 6 zile în urmă
părinte
comite
cbf8146bda
1 a modificat fișierele cu 5 adăugiri și 2 ștergeri
  1. 5 2
      udp/udp_tester.go

+ 5 - 2
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,
 	}