From 61017fc5d30b7a13308d038872ec92efc1a84cef Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 21 Nov 2011 14:02:00 +0000 Subject: 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 --- lib/bb/runqueue.py | 7 ++++--- 1 file 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)) -- cgit 1.2.3-korg