summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-16 07:19:34 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-16 22:17:48 +0100
commit4d8077527b80be4fc5740a6cdc69f80a8402cbb4 (patch)
tree6cece0da5da8da3a77bfe2fa7f58e283a42e31e2 /bitbake/lib/bb/runqueue.py
parent0a2ca9d60f3851515a79d5aa9ddd8b4069b5a206 (diff)
downloadpoky-4d8077527b80be4fc5740a6cdc69f80a8402cbb4.tar.gz
bitbake: 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. (Bitbake rev: 72f51767da47af12d2c56bd3ee87cb0018b16705) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 51bdd6cb3bd9e2c02e261fb578bb945b86b82c75) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 6c41fe6d43..014ee37bfc 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -2180,7 +2180,8 @@ class RunQueueExecute:
2180 if self.sq_deferred: 2180 if self.sq_deferred:
2181 tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0]) 2181 tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0])
2182 logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid) 2182 logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid)
2183 self.sq_task_failoutright(tid) 2183 if tid not in self.runq_complete:
2184 self.sq_task_failoutright(tid)
2184 return True 2185 return True
2185 2186
2186 if len(self.failed_tids) != 0: 2187 if len(self.failed_tids) != 0: