summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/fetch2/__init__.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 8dd276fa7..70387f52d 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -35,6 +35,7 @@ import operator
import collections
import subprocess
import pickle
+import errno
import bb.persist_data, bb.utils
import bb.checksum
from bb import data
@@ -998,6 +999,12 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
except bb.fetch2.NetworkAccess:
raise
+ except IOError as e:
+ if e.errno in [os.errno.ESTALE]:
+ logger.warn("Stale Error Observed %s." % ud.url)
+ return False
+ raise
+
except bb.fetch2.BBFetchException as e:
if isinstance(e, ChecksumError):
logger.warning("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (ud.url, origud.url))
@@ -1646,6 +1653,11 @@ class Fetch(object):
update_stamp(ud, self.d)
+ except IOError as e:
+ if e.errno in [os.errno.ESTALE]:
+ logger.error("Stale Error Observed %s." % u)
+ raise ChecksumError("Stale Error Detected")
+
except BBFetchException as e:
if isinstance(e, ChecksumError):
logger.error("Checksum failure fetching %s" % u)