summaryrefslogtreecommitdiffstats
path: root/bitbake
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 23:40:06 +0000
commit319ea222ee5e6bf01386f344ec9f9b8b49f639eb (patch)
tree3c2cd20233e8a466529bfd4cac9d26a0b27b25e4 /bitbake
parentaa9b10d1b09afe5312d5dd1ea409d22f7eaa953d (diff)
downloadast2050-yocto-poky-319ea222ee5e6bf01386f344ec9f9b8b49f639eb.zip
ast2050-yocto-poky-319ea222ee5e6bf01386f344ec9f9b8b49f639eb.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. (Bitbake rev: 61017fc5d30b7a13308d038872ec92efc1a84cef) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/runqueue.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 2141cf7..256f4e3 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1210,12 +1210,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))
OpenPOWER on IntegriCloud