From 589c5e58077e657abda6aebe21b9623b713fef41 Mon Sep 17 00:00:00 2001 From: Travis Bischel Date: Fri, 20 Aug 2021 00:40:49 -0600 Subject: [PATCH] io.EOF: make a retriable broker error Sooner or later, all retriable broker errors will be stamped out. --- pkg/kgo/errors.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/kgo/errors.go b/pkg/kgo/errors.go index 6622e9b7..231cccba 100644 --- a/pkg/kgo/errors.go +++ b/pkg/kgo/errors.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "io" "net" "os" ) @@ -39,6 +40,12 @@ func isRetriableBrokerErr(err error) bool { if errors.As(err, &tempErr) { return tempErr.Temporary() } + + // EOF can be returned if a broker kills a connection unexpectedly, and + // we can retry that. + if errors.Is(err, io.EOF) { + return true + } switch err { case errChosenBrokerDead, errCorrelationIDMismatch: