From 5cf80a6229c9f202ea381f37e0965845a52e9634 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Wed, 30 Oct 2019 16:25:58 -0700 Subject: [PATCH] clientv3: fix retry/streamer error message Signed-off-by: Gyuho Lee --- clientv3/retry_interceptor.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/clientv3/retry_interceptor.go b/clientv3/retry_interceptor.go index c65ec81a4..ca72ed0bd 100644 --- a/clientv3/retry_interceptor.go +++ b/clientv3/retry_interceptor.go @@ -113,10 +113,9 @@ func (c *Client) streamClientInterceptor(logger *zap.Logger, optFuncs ...retryOp return nil, status.Errorf(codes.Unimplemented, "clientv3/retry_interceptor: cannot retry on ClientStreams, set Disable()") } newStreamer, err := streamer(ctx, desc, cc, method, grpcOpts...) - logger.Warn("retry stream intercept", zap.Error(err)) if err != nil { - // TODO(mwitkow): Maybe dial and transport errors should be retriable? - return nil, err + logger.Error("streamer failed to create ClientStream", zap.Error(err)) + return nil, err // TODO(mwitkow): Maybe dial and transport errors should be retriable? } retryingStreamer := &serverStreamingRetryingStream{ client: c, @@ -185,6 +184,7 @@ func (s *serverStreamingRetryingStream) RecvMsg(m interface{}) error { if !attemptRetry { return lastErr // success or hard failure } + // We start off from attempt 1, because zeroth was already made on normal SendMsg(). for attempt := uint(1); attempt < s.callOpts.max; attempt++ { if err := waitRetryBackoff(s.ctx, attempt, s.callOpts); err != nil { @@ -192,12 +192,13 @@ func (s *serverStreamingRetryingStream) RecvMsg(m interface{}) error { } newStream, err := s.reestablishStreamAndResendBuffer(s.ctx) if err != nil { - // TODO(mwitkow): Maybe dial and transport errors should be retriable? - return err + s.client.lg.Error("failed reestablishStreamAndResendBuffer", zap.Error(err)) + return err // TODO(mwitkow): Maybe dial and transport errors should be retriable? } s.setStream(newStream) + + s.client.lg.Warn("retrying RecvMsg", zap.Error(lastErr)) attemptRetry, lastErr = s.receiveMsgAndIndicateRetry(m) - //fmt.Printf("Received message and indicate: %v %v\n", attemptRetry, lastErr) if !attemptRetry { return lastErr }