From c8b4c1e4bd59fd6dab2a5c8b1600bf369892a5f4 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 18 Jun 2021 23:35:31 +0300 Subject: [PATCH] fix: properly wrap errors when reading response body in the client As `%v` doesn't allow error unwrapping, checks like `errors.Is` are not working properly. Signed-off-by: Andrey Smirnov Kubernetes-commit: 6c0463bd2b616d0f22f47905bb26d66fa3b04e37 --- rest/request.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rest/request.go b/rest/request.go index 8f66c079..e5a8100b 100644 --- a/rest/request.go +++ b/rest/request.go @@ -1077,13 +1077,13 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu // 3. Apiserver closes connection. // 4. client-go should catch this and return an error. klog.V(2).Infof("Stream error %#v when reading response body, may be caused by closed connection.", err) - streamErr := fmt.Errorf("stream error when reading response body, may be caused by closed connection. Please retry. Original error: %v", err) + streamErr := fmt.Errorf("stream error when reading response body, may be caused by closed connection. Please retry. Original error: %w", err) return Result{ err: streamErr, } default: klog.Errorf("Unexpected error when reading response body: %v", err) - unexpectedErr := fmt.Errorf("unexpected error when reading response body. Please retry. Original error: %v", err) + unexpectedErr := fmt.Errorf("unexpected error when reading response body. Please retry. Original error: %w", err) return Result{ err: unexpectedErr, }