mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 1171527 - Make upload_symbols.py retry on 500 errors from the API. r=gps
This commit is contained in:
parent
089730f5f1
commit
a5a302ca8c
@ -22,6 +22,22 @@ import sys
|
||||
from buildconfig import substs
|
||||
|
||||
url = 'https://crash-stats.mozilla.com/symbols/upload'
|
||||
MAX_RETRIES = 5
|
||||
|
||||
def print_error(r):
|
||||
if r.status_code < 400:
|
||||
print('Error: bad auth token? ({0}: {1})'.format(r.status_code,
|
||||
r.reason),
|
||||
file=sys.stderr)
|
||||
else:
|
||||
print('Error: got HTTP response {0}: {1}'.format(r.status_code,
|
||||
r.reason),
|
||||
file=sys.stderr)
|
||||
|
||||
print('Response body:\n{sep}\n{body}\n{sep}\n'.format(
|
||||
sep='=' * 20,
|
||||
body=r.text
|
||||
))
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
@ -44,9 +60,10 @@ def main():
|
||||
return 1
|
||||
auth_token = open(token_file, 'r').read().strip()
|
||||
|
||||
print('Uploading symbol file "{0}" to "{1}"...'.format(sys.argv[1], url))
|
||||
print('Uploading symbol file "{0}" to "{1}"'.format(sys.argv[1], url))
|
||||
|
||||
for _ in redo.retrier():
|
||||
for i, _ in enumerate(redo.retrier(attempts=MAX_RETRIES), start=1):
|
||||
print('Attempt %d of %d...' % (i, MAX_RETRIES))
|
||||
try:
|
||||
r = requests.post(
|
||||
url,
|
||||
@ -54,9 +71,14 @@ def main():
|
||||
headers={'Auth-Token': auth_token},
|
||||
allow_redirects=False,
|
||||
timeout=120)
|
||||
break
|
||||
# 500 is likely to be a transient failure.
|
||||
# Break out for success or other error codes.
|
||||
if r.status_code != 500:
|
||||
break
|
||||
print_error(r)
|
||||
except requests.exceptions.RequestException as e:
|
||||
print('Error: {0}'.format(e))
|
||||
print('Retrying...')
|
||||
else:
|
||||
print('Maximum retries hit, giving up!')
|
||||
return 1
|
||||
@ -65,19 +87,7 @@ def main():
|
||||
print('Uploaded successfully!')
|
||||
return 0
|
||||
|
||||
if r.status_code < 400:
|
||||
print('Error: bad auth token? ({0}: {1})'.format(r.status_code,
|
||||
r.reason),
|
||||
file=sys.stderr)
|
||||
else:
|
||||
print('Error: got HTTP response {0}: {1}'.format(r.status_code,
|
||||
r.reason),
|
||||
file=sys.stderr)
|
||||
|
||||
print('Response body:\n{sep}\n{body}\n{sep}\n'.format(
|
||||
sep='=' * 20,
|
||||
body=r.text
|
||||
))
|
||||
print_error(r)
|
||||
return 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
Loading…
Reference in New Issue
Block a user