Skip to contentSkip to conversation

runqueue: Only attempt to print closest matching task if there is a match

PATCH In review Richard Purdie 2 participants 3 messages Jan 21, 2014 – Jan 22, 2014

lore
Share & tools
lore
#0 lore raw

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
index 4577236..bf2dc54 100644
@@ -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:
 
#1 lore raw
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
#2 lore raw
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