runqueue: Only attempt to print closest matching task if there is a match
PATCH 1/1 runqueue: Only attempt to print closest matching task if there is a match
This avoids backtraces some people have been seeing.
lib/bb/runqueue.py +5 -6
@@ -1224,12 +1224,11 @@ class RunQueue: if match is None: bb.fatal("Can't find a task we're supposed to have written out? (hash: %s)?" % h) matches = {k : v for k, v in matches.iteritems() if h not in k} - latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1] - prevh = __find_md5__.search(latestmatch).group(0) - output = bb.siggen.compare_sigfiles(latestmatch, match, recursecb) - bb.plain("\nTask %s:%s couldn't be used from the cache because:\n We need hash %s, closest matching task was %s\n " % (pn, taskname, h, prevh) + '\n '.join(output)) - - + if len(matches): + latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1] + prevh = __find_md5__.search(latestmatch).group(0) + output = bb.siggen.compare_sigfiles(latestmatch, match, recursecb) + bb.plain("\nTask %s:%s couldn't be used from the cache because:\n We need hash %s, closest matching task was %s\n " % (pn, taskname, h, prevh) + '\n '.join(output)) class RunQueueExecute:
Quoted 1 line · Richard Purdie
+ if len(matches):
Minor quibble, this could almost be considered an antipattern in python :) Whenever you see yourself doing this, you're almost always better off removing the len(). Python can test if a container is empty.
Signature · 5 lines
Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
Quoted 8 lines · Chris Larson
On Tue, Jan 21, 2014 at 3:31 PM, Richard Purdie
<[email protected]> wrote:
+ if len(matches):Minor quibble, this could almost be considered an antipattern in python :) Whenever you see yourself doing this, you're almost always better off removing the
len(). Python can test if a container is empty.
Sorry, I do know this too :/.
It started life as a len(x) > 1, then when I fixed something else I didn't properly simplify it.
Cheers,
Richard