diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-13 12:00:45 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-20 09:24:23 +0100 |
commit | 2f009e5b1e4e0a4148ab7d5c60bf0e7a193faa2e (patch) | |
tree | dbf344deff3ef34e6e3df97f2e4e79a8596504b2 /bitbake | |
parent | d993f172e806b095fa8bf799f11f975f6a5c238b (diff) | |
download | poky-2f009e5b1e4e0a4148ab7d5c60bf0e7a193faa2e.tar.gz |
bitbake/fetch2: Improve visibility of checksum warnings when fetching from mirrors
When fetching from mirrors, checksum errors would get buried in the
logs. This raises their profile so a warning is logged on the console
when fetcher checksum issues are encountered, even if other attempts
are made to get the file (which may or may not have the same issue).
(Bitbake rev: d43fafd7f01b5534499b45213197d8ccececdbc4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index ba6849e09d..9b5ba5a395 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
@@ -63,6 +63,9 @@ class FetchError(BBFetchException): | |||
63 | BBFetchException.__init__(self, msg) | 63 | BBFetchException.__init__(self, msg) |
64 | self.args = (message, url) | 64 | self.args = (message, url) |
65 | 65 | ||
66 | class ChecksumError(FetchError): | ||
67 | """Exception when mismatched checksum encountered""" | ||
68 | |||
66 | class UnpackError(BBFetchException): | 69 | class UnpackError(BBFetchException): |
67 | """General fetcher exception when something happens incorrectly when unpacking""" | 70 | """General fetcher exception when something happens incorrectly when unpacking""" |
68 | def __init__(self, message, url): | 71 | def __init__(self, message, url): |
@@ -312,7 +315,7 @@ def verify_checksum(u, ud, d): | |||
312 | msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected) | 315 | msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected) |
313 | 316 | ||
314 | if len(msg): | 317 | if len(msg): |
315 | raise FetchError('Checksum mismatch!%s' % msg, u) | 318 | raise ChecksumError('Checksum mismatch!%s' % msg, u) |
316 | 319 | ||
317 | 320 | ||
318 | def update_stamp(u, ud, d): | 321 | def update_stamp(u, ud, d): |
@@ -504,8 +507,12 @@ def try_mirrors(d, origud, mirrors, check = False): | |||
504 | raise | 507 | raise |
505 | 508 | ||
506 | except bb.fetch2.BBFetchException as e: | 509 | except bb.fetch2.BBFetchException as e: |
507 | logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url)) | 510 | if isinstance(e, ChecksumError): |
508 | logger.debug(1, str(e)) | 511 | logger.warn("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (newuri, origud.url)) |
512 | logger.warn(str(e)) | ||
513 | else: | ||
514 | logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url)) | ||
515 | logger.debug(1, str(e)) | ||
509 | try: | 516 | try: |
510 | ud.method.clean(ud, ld) | 517 | ud.method.clean(ud, ld) |
511 | except UnboundLocalError: | 518 | except UnboundLocalError: |
@@ -979,8 +986,11 @@ class Fetch(object): | |||
979 | raise | 986 | raise |
980 | 987 | ||
981 | except BBFetchException as e: | 988 | except BBFetchException as e: |
982 | logger.warn('Failed to fetch URL %s' % u) | 989 | if isinstance(e, ChecksumError): |
983 | logger.debug(1, str(e)) | 990 | logger.warn("Checksum error encountered with download (will attempt other sources): %s" % str(e)) |
991 | else: | ||
992 | logger.warn('Failed to fetch URL %s, attempting MIRRORS if available' % u) | ||
993 | logger.debug(1, str(e)) | ||
984 | firsterr = e | 994 | firsterr = e |
985 | # Remove any incomplete fetch | 995 | # Remove any incomplete fetch |
986 | m.clean(ud, self.d) | 996 | m.clean(ud, self.d) |