From ece8aefe1f7b6e3ae274c5157e454b719d74c6c8 Mon Sep 17 00:00:00 2001 From: Anders Liu Date: Sat, 28 Dec 2019 00:02:56 -0800 Subject: [PATCH 1/2] fix: azure error should not retry on bad reqeust --- .../k8s.io/legacy-cloud-providers/azure/retry/azure_error.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go index 03d043cb9d9..4bf262897dc 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go @@ -125,8 +125,9 @@ func getHTTPStatusCode(resp *http.Response) int { // shouldRetryHTTPRequest determines if the request is retriable. func shouldRetryHTTPRequest(resp *http.Response, err error) bool { if resp != nil { - // HTTP 412 (StatusPreconditionFailed) means etag mismatch, hence we shouldn't retry. - if resp.StatusCode == http.StatusPreconditionFailed { + // HTTP 412 (StatusPreconditionFailed) means etag mismatch + // HTTP 400 (BadRequest) means the request cannot be accepted, hence we shouldn't retry. + if resp.StatusCode == http.StatusPreconditionFailed || resp.StatusCode == http.StatusBadRequest { return false } From 6359080d4f648d32bab07d70a3c3407501ab3c91 Mon Sep 17 00:00:00 2001 From: Anders Liu Date: Sat, 28 Dec 2019 00:06:56 -0800 Subject: [PATCH 2/2] fix: test failures --- .../legacy-cloud-providers/azure/retry/azure_error_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go index 01ab273a510..52057ffc3b4 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/retry/azure_error_test.go @@ -54,7 +54,7 @@ func TestGetError(t *testing.T) { { code: http.StatusBadRequest, expected: &Error{ - Retriable: true, + Retriable: false, HTTPStatusCode: http.StatusBadRequest, RawError: fmt.Errorf("HTTP response: 400"), }, @@ -136,7 +136,7 @@ func TestGetStatusNotFoundAndForbiddenIgnoredError(t *testing.T) { { code: http.StatusBadRequest, expected: &Error{ - Retriable: true, + Retriable: false, HTTPStatusCode: http.StatusBadRequest, RawError: fmt.Errorf("HTTP response: 400"), }, @@ -191,7 +191,7 @@ func TestShouldRetryHTTPRequest(t *testing.T) { }{ { code: http.StatusBadRequest, - expected: true, + expected: false, }, { code: http.StatusInternalServerError,