From 74a785b92588ed7a1b1a922a56720de541846f9c Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 24 May 2019 12:47:08 +0000 Subject: [PATCH] fix azure retry issue when return 2XX with error fix comments --- pkg/cloudprovider/providers/azure/azure_backoff.go | 5 +++-- pkg/cloudprovider/providers/azure/azure_backoff_test.go | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/cloudprovider/providers/azure/azure_backoff.go b/pkg/cloudprovider/providers/azure/azure_backoff.go index 79560532f2..f10f407eb4 100644 --- a/pkg/cloudprovider/providers/azure/azure_backoff.go +++ b/pkg/cloudprovider/providers/azure/azure_backoff.go @@ -552,8 +552,9 @@ func shouldRetryHTTPRequest(resp *http.Response, err error) bool { return false } +// processHTTPRetryResponse : return true means stop retry, false means continue retry func (az *Cloud) processHTTPRetryResponse(service *v1.Service, reason string, resp *http.Response, err error) (bool, error) { - if resp != nil && isSuccessHTTPResponse(resp) { + if err == nil && resp != nil && isSuccessHTTPResponse(resp) { // HTTP 2xx suggests a successful response return true, nil } @@ -576,7 +577,7 @@ func (az *Cloud) processHTTPRetryResponse(service *v1.Service, reason string, re } func (az *Cloud) processHTTPResponse(service *v1.Service, reason string, resp *http.Response, err error) error { - if isSuccessHTTPResponse(resp) { + if err == nil && isSuccessHTTPResponse(resp) { // HTTP 2xx suggests a successful response return nil } diff --git a/pkg/cloudprovider/providers/azure/azure_backoff_test.go b/pkg/cloudprovider/providers/azure/azure_backoff_test.go index d0a1399e27..c14ace656f 100644 --- a/pkg/cloudprovider/providers/azure/azure_backoff_test.go +++ b/pkg/cloudprovider/providers/azure/azure_backoff_test.go @@ -119,6 +119,11 @@ func TestProcessRetryResponse(t *testing.T) { code: http.StatusOK, stop: true, }, + { + code: http.StatusOK, + err: fmt.Errorf("some error"), + stop: false, + }, { code: 399, stop: true,