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)
downloadpoky-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 2141cf7d84..256f4e30ce 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1210,12 +1210,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
1210 if task in self.rq.scenequeue_covered: 1210 if task in self.rq.scenequeue_covered:
1211 continue 1211 continue
1212 if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered): 1212 if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
1213 found = True 1213 ok = True
1214 for revdep in self.rqdata.runq_revdeps[task]: 1214 for revdep in self.rqdata.runq_revdeps[task]:
1215 if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]: 1215 if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
1216 found = False 1216 ok = False
1217 break 1217 break
1218 if found: 1218 if ok:
1219 found = True
1219 self.rq.scenequeue_covered.add(task) 1220 self.rq.scenequeue_covered.add(task)
1220 1221
1221 logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered)) 1222 logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered))