in oss/retry/retryable_error.go [76:103]
func (c *ConnectionErrorRetryable) IsErrorRetryable(err error) bool {
if err != nil {
switch t := err.(type) {
case *url.Error:
if t.Err != nil {
return c.IsErrorRetryable(t.Err)
}
case net.Error:
if t.Temporary() || t.Timeout() {
return true
}
}
for _, retriableErr := range retriableErrors {
if err == retriableErr {
return true
}
}
errString := err.Error()
for _, phrase := range retriableErrorStrings {
if strings.Contains(errString, phrase) {
return true
}
}
}
return false
}