From 8bc5b03abecf3c00204cc9bdf0d4f6a98c7dd25a Mon Sep 17 00:00:00 2001 From: Michael Hoffmann Date: Tue, 25 Jun 2024 19:53:08 +0200 Subject: [PATCH] Proxy: fix response set panic --- pkg/store/proxy_merge.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/pkg/store/proxy_merge.go b/pkg/store/proxy_merge.go index 457256062dc..fa002cc9b1c 100644 --- a/pkg/store/proxy_merge.go +++ b/pkg/store/proxy_merge.go @@ -349,7 +349,6 @@ func newLazyRespSet( } resp, err := cl.Recv() - if err != nil { if err == io.EOF { l.bufferedResponsesMtx.Lock() @@ -362,10 +361,8 @@ func newLazyRespSet( var rerr error // If timer is already stopped if t != nil && !t.Stop() { - if errors.Is(err, context.Canceled) { - // The per-Recv timeout has been reached. - rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, st) - } + <-t.C // Drain the channel if it was already stopped. + rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, st) } else { rerr = errors.Wrapf(err, "receive series from %s", st) } @@ -609,7 +606,6 @@ func newEagerRespSet( } resp, err := cl.Recv() - if err != nil { if err == io.EOF { return false @@ -619,10 +615,7 @@ func newEagerRespSet( // If timer is already stopped if t != nil && !t.Stop() { <-t.C // Drain the channel if it was already stopped. - if errors.Is(err, context.Canceled) { - // The per-Recv timeout has been reached. - rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, storeName) - } + rerr = errors.Wrapf(err, "failed to receive any data in %s from %s", l.frameTimeout, storeName) } else { rerr = errors.Wrapf(err, "receive series from %s", storeName) }