diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-28 09:34:56 +0000 |
---|---|---|
committer | Armin Kuster <akuster808@gmail.com> | 2020-01-02 20:23:09 -0800 |
commit | 39cc4930676970b2e51b99a778f5d5d9b5259991 (patch) | |
tree | cded9c3ce08784d6e0b099c5c9c333d475f1222e | |
parent | 182b2ae7bab4a943978154be3a65c018aaf21fdc (diff) | |
download | bitbake-contrib-39cc4930676970b2e51b99a778f5d5d9b5259991.tar.gz |
runqueue: Fix task dependency corner case in sanity test
A corner case was identified where tasks with valid stamps from previous
builds need to be accounted for in the new sanity test in the migration
code. Add a variable to track such completed tasks to ensure the sanity
test works correctly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d517b1ef13ca7ab2fb4d761d3bd3b9fb7c591514)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r-- | lib/bb/runqueue.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 56ca2529c..6e3a91b85 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -1708,6 +1708,7 @@ class RunQueueExecute: self.runq_buildable = set() self.runq_running = set() self.runq_complete = set() + self.runq_tasksrun = set() self.build_stamps = {} self.build_stamps2 = [] @@ -1893,6 +1894,7 @@ class RunQueueExecute: self.stats.taskCompleted() bb.event.fire(runQueueTaskCompleted(task, self.stats, self.rq), self.cfgData) self.task_completeoutright(task) + self.runq_tasksrun.add(task) def task_fail(self, task, exitcode): """ @@ -2092,6 +2094,7 @@ class RunQueueExecute: logger.debug(2, "Stamp current task %s", task) self.task_skip(task, "existing") + self.runq_tasksrun.add(task) return True taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] @@ -2353,7 +2356,7 @@ class RunQueueExecute: if tid in self.tasks_scenequeue_done: self.tasks_scenequeue_done.remove(tid) for dep in self.sqdata.sq_covered_tasks[tid]: - if dep in self.runq_complete: + if dep in self.runq_complete and dep not in self.runq_tasksrun: bb.error("Task %s marked as completed but now needing to rerun? Aborting build." % dep) self.failed_tids.append(tid) self.rq.state = runQueueCleanUp |