diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 165683ecada..3d7b0674214 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -62,6 +62,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" + utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/wait" @@ -5110,7 +5111,7 @@ func DumpDebugInfo(c clientset.Interface, ns string) { // TODO: Get rid of this duplicate function in favour of the one in test/utils. func IsRetryableAPIError(err error) bool { - return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) + return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) || utilnet.IsProbableEOF(err) } // DsFromManifest reads a .json/yaml file and returns the daemonset in it. diff --git a/test/utils/BUILD b/test/utils/BUILD index 1c7e63e0034..40b9aa02b15 100644 --- a/test/utils/BUILD +++ b/test/utils/BUILD @@ -42,6 +42,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/test/utils/create_resources.go b/test/utils/create_resources.go index 9ed33a734aa..7a1379826ef 100644 --- a/test/utils/create_resources.go +++ b/test/utils/create_resources.go @@ -26,6 +26,7 @@ import ( "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" apierrs "k8s.io/apimachinery/pkg/api/errors" + utilnet "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" ) @@ -50,7 +51,7 @@ func RetryWithExponentialBackOff(fn wait.ConditionFunc) error { } func IsRetryableAPIError(err error) bool { - return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) + return apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) || apierrs.IsTooManyRequests(err) || utilnet.IsProbableEOF(err) } func CreatePodWithRetries(c clientset.Interface, namespace string, obj *v1.Pod) error {