| Index: parallel_emerge
|
| diff --git a/parallel_emerge b/parallel_emerge
|
| index ab342334c2e1d4e7a766d81e95fc2e123b46a888..c912a115ac000207582caa693c4997e429764990 100755
|
| --- a/parallel_emerge
|
| +++ b/parallel_emerge
|
| @@ -667,9 +667,10 @@ class DepGraphGenerator(object):
|
| return {}
|
|
|
| def retry_urlopen(url, tries=3):
|
| - """Open the specified url, retrying if we run into network errors.
|
| + """Open the specified url, retrying if we run into temporary errors.
|
|
|
| - We do not retry for HTTP errors.
|
| + We retry for both network errors and 5xx Server Errors. We do not retry
|
| + for HTTP errors with a non-5xx code.
|
|
|
| Args:
|
| url: The specified url.
|
| @@ -682,12 +683,17 @@ class DepGraphGenerator(object):
|
| try:
|
| return urllib2.urlopen(url)
|
| except urllib2.HTTPError as e:
|
| - raise
|
| + if i + 1 >= tries or e.code < 500:
|
| + raise
|
| + else:
|
| + print "Cannot GET %s: %s" % (url, str(e))
|
| except urllib2.URLError as e:
|
| - if i + 1 == tries:
|
| + if i + 1 >= tries:
|
| raise
|
| else:
|
| - print "Cannot GET %s: %s" % (url, e)
|
| + print "Cannot GET %s: %s" % (url, str(e))
|
| + print "Sleeping for 10 seconds before retrying..."
|
| + time.sleep(10)
|
|
|
| url = os.path.join(binhost_url, "Packages")
|
| try:
|
|
|