summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-21 14:02:00 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-23 15:58:26 +0000
commit61017fc5d30b7a13308d038872ec92efc1a84cef (patch)
treee27c69618acfd3e7760633d8df8bf1224565c360
parentb7114d8e5d9b0720339bd5d24d243c0f2a7c1f3b (diff)
downloadbitbake-61017fc5d30b7a13308d038872ec92efc1a84cef.tar.gz
runqueue.py: Ensure we fully process the covered list
The existing looping code can mask an existing "found = True" by forcing it to False each time. This can lead to dependency lists not being fully searched and results in dependency errors. An exmaple of this was the autobuilder building linux-yocto from sstate but then rebuilding some of the recipe's tasks for no apparent reason. Separating the logic into two variables solves this problem since any "found = True" value is now always preserved. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/runqueue.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index bea6f9c56..f5598ca23 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -1209,12 +1209,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
if task in self.rq.scenequeue_covered:
continue
if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
- found = True
+ ok = True
for revdep in self.rqdata.runq_revdeps[task]:
if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
- found = False
+ ok = False
break
- if found:
+ if ok:
+ found = True
self.rq.scenequeue_covered.add(task)
logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered))