Patchwork [bitbake-devel] Paul Eggleton : bitbake/fetch2: reduce output for fetch failures

mail settings
Date Jan. 15, 2012, 10:15 a.m.
Message ID <20120115101511.2EE5D10338@opal>
Download mbox | patch
Permalink /patch/19389/
State Not Applicable
Headers show

Comments - Jan. 15, 2012, 10:15 a.m.
Module: bitbake.git
Branch: master
Commit: 6bbdc7d259c0cc041b62dbdb26cfc3ec6edcb6f3

Author: Paul Eggleton <>
Date:   Fri Jan 13 17:01:50 2012 +0000

bitbake/fetch2: reduce output for fetch failures

Make the warning for the initial fetch failure a single line - we don't
need the full command and output here yet, but write it into the log in
full as a debug message. However, if fetching from mirrors fails as well
then print out the full details for the first error that occurred as an
ERROR rather than a WARNING.

Since this is logged as an ERROR, combined with an earlier patch it
suppresses the full log which does make the output much more readable
for any fetch error.

Fixes [YOCTO #1832].

Signed-off-by: Paul Eggleton <>
Signed-off-by: Richard Purdie <>


 lib/bb/fetch2/ |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)


diff --git a/lib/bb/fetch2/ b/lib/bb/fetch2/
index 771f72e..fe4f4b1 100644
--- a/lib/bb/fetch2/
+++ b/lib/bb/fetch2/
@@ -965,6 +965,7 @@  class Fetch(object):
                 if premirroronly:
                     self.d.setVar("BB_NO_NETWORK", "1")
+                firsterr = None
                 if not localpath and m.need_update(u, ud, self.d):
                         logger.debug(1, "Trying Upstream")
@@ -980,7 +981,9 @@  class Fetch(object):
                     except BBFetchException as e:
-                        logger.warn(str(e))
+                        logger.warn('Failed to fetch URL %s' % u)
+                        logger.debug(1, str(e))
+                        firsterr = e
                         # Remove any incomplete fetch
                         if os.path.isfile(ud.localpath):
@@ -989,6 +992,8 @@  class Fetch(object):
                         localpath = try_mirrors (self.d, ud, mirrors)
                 if not localpath or ((not os.path.exists(localpath)) and localpath.find("*") == -1):
+                    if firsterr:
+                        logger.error(str(firsterr))
                     raise FetchError("Unable to fetch URL from any source.", u)
                 update_stamp(u, ud, self.d)