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>2012-01-30 16:16:12 +0000
commit1a46002fad4c00357e828b9ee548bb2074dd5043 (patch)
tree3c8bbec33a00981418fa19ccf0b8dfffa33a57db /bitbake
parent2747b2003e982094180a9c18ecb22a6559bca64e (diff)
downloadpoky-1a46002fad4c00357e828b9ee548bb2074dd5043.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 3f8ea3156d..7d57fc332e 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1203,12 +1203,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
1203 if task in self.rq.scenequeue_covered: 1203 if task in self.rq.scenequeue_covered:
1204 continue 1204 continue
1205 if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered): 1205 if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
1206 found = True 1206 ok = True
1207 for revdep in self.rqdata.runq_revdeps[task]: 1207 for revdep in self.rqdata.runq_revdeps[task]:
1208 if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]: 1208 if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
1209 found = False 1209 ok = False
1210 break 1210 break
1211 if found: 1211 if ok:
1212 found = True
1212 self.rq.scenequeue_covered.add(task) 1213 self.rq.scenequeue_covered.add(task)
1213 1214
1214 # Detect when the real task needs to be run anyway by looking to see 1215 # Detect when the real task needs to be run anyway by looking to see