From 031c67dd5d09b4b79d8e9ca71d0a3c9a854a2c47 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sat, 13 Sep 2025 20:45:34 -0700 Subject: [PATCH] Both io.ReadFull and time.Sleep are now context-aware --- weed/mq/kafka/protocol/fetch.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/weed/mq/kafka/protocol/fetch.go b/weed/mq/kafka/protocol/fetch.go index ced44ac36..eeda4a09b 100644 --- a/weed/mq/kafka/protocol/fetch.go +++ b/weed/mq/kafka/protocol/fetch.go @@ -56,16 +56,15 @@ func (h *Handler) handleFetch(ctx context.Context, correlationID uint32, apiVers start := time.Now() deadline := start.Add(time.Duration(maxWaitMs) * time.Millisecond) for time.Now().Before(deadline) { - // Check for context cancellation first + // Use context-aware sleep instead of blocking time.Sleep select { case <-ctx.Done(): fmt.Printf("DEBUG: Fetch polling cancelled due to context cancellation\n") throttleTimeMs = int32(time.Since(start) / time.Millisecond) break - default: + case <-time.After(10 * time.Millisecond): + // Continue with polling } - - time.Sleep(10 * time.Millisecond) if hasDataAvailable() { break }