diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go index a07da82a73c..281ba764363 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff.go @@ -596,8 +596,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 } @@ -620,7 +621,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/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go index d0a1399e27c..c14ace656f2 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_backoff_test.go +++ b/staging/src/k8s.io/legacy-cloud-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,