summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2016-06-30 22:32:24 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-05-18 13:11:39 +0100
commit0b48acbf0428975e67012877417b9f90d3e1778c (patch)
tree49728fb7cc6bf6561704c59a31a4dd0e6607c627
parent03f6025a5b0cc4d883a9b2071e026769330752c8 (diff)
downloadbitbake-0b48acbf0428975e67012877417b9f90d3e1778c.tar.gz
fetch2/wget: attempt checkstatus again if it fails
Some services such as SourceForge seem to struggle to keep up under load, with the result that over half of the autobuilder checkuri runs fail with sourceforge.net "connection timed out". Attempt to mitigate this by re-attempting once the network operation on failure. (Bitbake rev: 54b1961551511948e0cbd2ac39f19b39b9cee568) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Hand applied Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/wget.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/bb/fetch2/wget.py b/lib/bb/fetch2/wget.py
index 8bc9e93ca..691942c9c 100644
--- a/lib/bb/fetch2/wget.py
+++ b/lib/bb/fetch2/wget.py
@@ -104,7 +104,7 @@ class Wget(FetchMethod):
return True
- def checkstatus(self, fetch, ud, d):
+ def checkstatus(self, fetch, ud, d, try_again=True):
import urllib2, socket, httplib
from urllib import addinfourl
from bb.fetch2 import FetchConnectionCache
@@ -278,9 +278,13 @@ class Wget(FetchMethod):
r.get_method = lambda: "HEAD"
opener.open(r)
except urllib2.URLError as e:
- # debug for now to avoid spamming the logs in e.g. remote sstate searches
- logger.debug(2, "checkstatus() urlopen failed: %s" % e)
- return False
+ if try_again:
+ logger.debug(2, "checkstatus: trying again")
+ return self.checkstatus(fetch, ud, d, False)
+ else:
+ # debug for now to avoid spamming the logs in e.g. remote sstate searches
+ logger.debug(2, "checkstatus() urlopen failed: %s" % e)
+ return False
return True
def _parse_path(self, regex, s):