[bitbake-devel] Richard Purdie : runqueue.py: Ensure we fully process the covered list

git at git.openembedded.org git at git.openembedded.org
Wed Nov 23 16:00:59 UTC 2011


Module: bitbake.git
Branch: master
Commit: 61017fc5d30b7a13308d038872ec92efc1a84cef
URL:    http://git.openembedded.org/?p=bitbake.git&a=commit;h=61017fc5d30b7a13308d038872ec92efc1a84cef

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Mon Nov 21 14:02:00 2011 +0000

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 at linuxfoundation.org>

---

 lib/bb/runqueue.py |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index bea6f9c..f5598ca 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))





More information about the bitbake-devel mailing list