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>
This commit is contained in:
parent
2747b2003e
commit
1a46002fad
|
@ -1203,12 +1203,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
||||||
if task in self.rq.scenequeue_covered:
|
if task in self.rq.scenequeue_covered:
|
||||||
continue
|
continue
|
||||||
if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
|
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]:
|
for revdep in self.rqdata.runq_revdeps[task]:
|
||||||
if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
|
if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
|
||||||
found = False
|
ok = False
|
||||||
break
|
break
|
||||||
if found:
|
if ok:
|
||||||
|
found = True
|
||||||
self.rq.scenequeue_covered.add(task)
|
self.rq.scenequeue_covered.add(task)
|
||||||
|
|
||||||
# Detect when the real task needs to be run anyway by looking to see
|
# Detect when the real task needs to be run anyway by looking to see
|
||||||
|
|
Loading…
Reference in New Issue