aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/error.py
diff options
context:
space:
mode:
authorAleksandr <ivansduck@gmail.com>2022-02-10 16:47:52 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:52 +0300
commitb05913d1c3c02a773578bceb7285084d2933ae86 (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /build/scripts/error.py
parentea6c5b7f172becca389cacaff7d5f45f6adccbe6 (diff)
downloadydb-b05913d1c3c02a773578bceb7285084d2933ae86.tar.gz
Restoring authorship annotation for Aleksandr <ivansduck@gmail.com>. Commit 2 of 2.
Diffstat (limited to 'build/scripts/error.py')
-rw-r--r--build/scripts/error.py58
1 files changed, 29 insertions, 29 deletions
diff --git a/build/scripts/error.py b/build/scripts/error.py
index 6e4256e5c2..f7d8ecb2cc 100644
--- a/build/scripts/error.py
+++ b/build/scripts/error.py
@@ -1,19 +1,19 @@
-# Sync content of this file with devtools/ya/core/error/__init__.py
-
+# Sync content of this file with devtools/ya/core/error/__init__.py
+
TEMPORARY_ERROR_MESSAGES = [
- 'Connection reset by peer',
- 'Connection timed out',
- 'Function not implemented',
- 'I/O operation on closed file',
- 'Internal Server Error',
- 'Network connection closed unexpectedly',
+ 'Connection reset by peer',
+ 'Connection timed out',
+ 'Function not implemented',
+ 'I/O operation on closed file',
+ 'Internal Server Error',
+ 'Network connection closed unexpectedly',
'Network is unreachable',
'No route to host',
- 'No space left on device',
- 'Not enough space',
- 'Temporary failure in name resolution',
+ 'No space left on device',
+ 'Not enough space',
+ 'Temporary failure in name resolution',
'The read operation timed out',
- 'timeout: timed out',
+ 'timeout: timed out',
]
@@ -23,55 +23,55 @@ class ExitCodes(object):
COMPILATION_FAILED = 11
INFRASTRUCTURE_ERROR = 12
NOT_RETRIABLE_ERROR = 13
- YT_STORE_FETCH_ERROR = 14
+ YT_STORE_FETCH_ERROR = 14
def merge_exit_codes(exit_codes):
- return max(e if e >= 0 else 1 for e in exit_codes) if exit_codes else 0
+ return max(e if e >= 0 else 1 for e in exit_codes) if exit_codes else 0
def is_temporary_error(exc):
- import logging
- logger = logging.getLogger(__name__)
-
+ import logging
+ logger = logging.getLogger(__name__)
+
if getattr(exc, 'temporary', False):
- logger.debug("Exception has temporary attribute: %s", exc)
+ logger.debug("Exception has temporary attribute: %s", exc)
return True
import errno
err = getattr(exc, 'errno', None)
if err == errno.ECONNREFUSED or err == errno.ENETUNREACH:
- logger.debug("Exception has errno attribute: %s (errno=%s)", exc, err)
+ logger.debug("Exception has errno attribute: %s (errno=%s)", exc, err)
return True
import socket
if isinstance(exc, socket.timeout) or isinstance(getattr(exc, 'reason', None), socket.timeout):
- logger.debug("Socket timeout exception: %s", exc)
+ logger.debug("Socket timeout exception: %s", exc)
return True
if isinstance(exc, socket.gaierror):
- logger.debug("Getaddrinfo exception: %s", exc)
+ logger.debug("Getaddrinfo exception: %s", exc)
+ return True
+
+ import urllib2
+
+ if isinstance(exc, urllib2.HTTPError) and exc.code in (429, ):
+ logger.debug("urllib2.HTTPError: %s", exc)
return True
- import urllib2
-
- if isinstance(exc, urllib2.HTTPError) and exc.code in (429, ):
- logger.debug("urllib2.HTTPError: %s", exc)
- return True
-
import httplib
if isinstance(exc, httplib.IncompleteRead):
- logger.debug("IncompleteRead exception: %s", exc)
+ logger.debug("IncompleteRead exception: %s", exc)
return True
exc_str = str(exc)
for message in TEMPORARY_ERROR_MESSAGES:
if message in exc_str:
- logger.debug("Found temporary error pattern (%s): %s", message, exc_str)
+ logger.debug("Found temporary error pattern (%s): %s", message, exc_str)
return True
return False