diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-21 14:02:00 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-01-30 16:16:12 +0000 |
commit | 1a46002fad4c00357e828b9ee548bb2074dd5043 (patch) | |
tree | 3c8bbec33a00981418fa19ccf0b8dfffa33a57db | |
parent | 2747b2003e982094180a9c18ecb22a6559bca64e (diff) | |
download | poky-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>
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 7 |
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 |