From cc52b9b12c60810142252b9cb5d4268e42371b8e Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Wed, 14 Jun 2017 20:30:22 +0100 Subject: fetch: fix handling of files with incorrect checksums from a premirror Ensure that when an item fetched from a premirror has an invalid checksum the fetcher falls back to the usual logic of trying the upstream and any configured mirrors. Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie --- lib/bb/fetch2/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index 136fc29c1..b853da30b 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -1619,6 +1619,15 @@ class Fetch(object): logger.debug(1, "Trying PREMIRRORS") mirrors = mirror_from_string(self.d.getVar('PREMIRRORS')) localpath = try_mirrors(self, self.d, ud, mirrors, False) + if localpath: + try: + # early checksum verification so that if the checksum of the premirror + # contents mismatch the fetcher can still try upstream and mirrors + update_stamp(ud, self.d) + except ChecksumError as e: + logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u) + logger.debug(1, str(e)) + localpath = "" if premirroronly: self.d.setVar("BB_NO_NETWORK", "1") -- cgit 1.2.3-korg