From 75ffd30a03966a51de8d7b3f7b57525ba1117ef4 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sat, 13 Sep 2025 20:58:51 -0700 Subject: [PATCH] goroutine-based context-cancellable I/O + aggressive goroutine timeouts --- weed/mq/kafka/protocol/handler.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/weed/mq/kafka/protocol/handler.go b/weed/mq/kafka/protocol/handler.go index b5c07c5db..f803a9cf8 100644 --- a/weed/mq/kafka/protocol/handler.go +++ b/weed/mq/kafka/protocol/handler.go @@ -291,6 +291,11 @@ func (h *Handler) HandleConn(ctx context.Context, conn net.Conn) error { readChan := make(chan readResult, 1) go func() { + // Set a very short deadline for this specific read to prevent hanging + if err := conn.SetReadDeadline(time.Now().Add(1 * time.Second)); err != nil { + readChan <- readResult{n: 0, err: err} + return + } n, err := io.ReadFull(r, sizeBytes[:]) readChan <- readResult{n: n, err: err} }()