aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-07 12:14:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-07 21:49:45 +0100
commit51bdd6cb3bd9e2c02e261fb578bb945b86b82c75 (patch)
tree591235551db47da2f05e2e4db0a944377b69bc8b
parent5ba191a0407af9e652e3b86302dce3e952d6b587 (diff)
downloadbitbake-51bdd6cb3bd9e2c02e261fb578bb945b86b82c75.tar.gz
runqueue: Avoid deadlock avoidance task graph corruption
If the deferred task deadlock avoidance code triggers, it could mark an executed task as failed which leads to "covered and not covered" error messages. Improve the logic so if the deadlock code is triggered, it doesn't cause the errors. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/runqueue.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 25e012125..f5f25c5b7 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -2180,7 +2180,8 @@ class RunQueueExecute:
if self.sq_deferred:
tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0])
logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid)
- self.sq_task_failoutright(tid)
+ if tid not in self.runq_complete:
+ self.sq_task_failoutright(tid)
return True
if len(self.failed_tids) != 0: