diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index fd33d0702e..a4009d4e9b 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1178,7 +1178,7 @@ class RunQueueExecuteTasks(RunQueueExecute): self.runq_buildable.append(1) else: self.runq_buildable.append(0) - 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) and task not in self.rq.scenequeue_notcovered: self.rq.scenequeue_covered.add(task) found = True @@ -1189,7 +1189,7 @@ class RunQueueExecuteTasks(RunQueueExecute): continue logger.debug(1, 'Considering %s (%s): %s' % (task, self.rqdata.get_user_idstring(task), str(self.rqdata.runq_revdeps[task]))) - 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) and task not in self.rq.scenequeue_notcovered: ok = True for revdep in self.rqdata.runq_revdeps[task]: if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]: @@ -1646,6 +1646,9 @@ class RunQueueExecuteScenequeue(RunQueueExecute): self.rq.scenequeue_covered = set() for task in oldcovered: self.rq.scenequeue_covered.add(self.rqdata.runq_setscene[task]) + self.rq.scenequeue_notcovered = set() + for task in self.scenequeue_notcovered: + self.rq.scenequeue_notcovered.add(self.rqdata.runq_setscene[task]) logger.debug(1, 'We can skip tasks %s', sorted(self.rq.scenequeue_covered))