From 8007d2620d6fbc9f7eeb0a0ee571fe802b866353 Mon Sep 17 00:00:00 2001 From: Jonathan Amsterdam Date: Thu, 12 Jul 2018 16:27:04 -0400 Subject: [PATCH] storage: retry on temporary errors Fixes #1061. Change-Id: Ia3e8071fe59949fa003bc287fbef4d5e611fb093 Reviewed-on: https://code-review.googlesource.com/30370 Reviewed-by: kokoro Reviewed-by: Jean de Klerk --- storage/go110.go | 2 ++ storage/not_go110.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/storage/go110.go b/storage/go110.go index 75be3cbb5d5b..206813f0cea4 100644 --- a/storage/go110.go +++ b/storage/go110.go @@ -24,6 +24,8 @@ func shouldRetry(err error) bool { // Retry on 429 and 5xx, according to // https://cloud.google.com/storage/docs/exponential-backoff. return e.Code == 429 || (e.Code >= 500 && e.Code < 600) + case interface{ Temporary() bool }: + return e.Temporary() default: return false } diff --git a/storage/not_go110.go b/storage/not_go110.go index 700fde1ccb7c..66fa45bea2fe 100644 --- a/storage/not_go110.go +++ b/storage/not_go110.go @@ -34,6 +34,8 @@ func shouldRetry(err error) bool { // Unfortunately the error type is unexported, so we resort to string // matching. return strings.Contains(e.Error(), "REFUSED_STREAM") + case interface{ Temporary() bool }: + return e.Temporary() default: return false }