summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-02-15 10:43:19 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-02-22 10:12:33 +0000
commit3c76d0ad71b20ef12a8e63ae63737f4afe7c92d2 (patch)
treed6cd44e4d1ca05ba5eff5d1283cd297508e5f7bb /bitbake
parent826011d497cab1dcd69629cd0781e443c1ae522c (diff)
downloadpoky-3c76d0ad71b20ef12a8e63ae63737f4afe7c92d2.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: 2e1354525217505ce34fe775ee6ec8af46ff5324) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 51bdd6cb3bd9e2c02e261fb578bb945b86b82c75) Signed-off-by: Fabio Berton <fabio.berton@criticaltechworks.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-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 9efd1c86f9..c7f50fdeb1 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -2234,7 +2234,8 @@ class RunQueueExecute:
2234 if self.sq_deferred: 2234 if self.sq_deferred:
2235 tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0]) 2235 tid = self.sq_deferred.pop(list(self.sq_deferred.keys())[0])
2236 logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid) 2236 logger.warning("Runqeueue deadlocked on deferred tasks, forcing task %s" % tid)
2237 self.sq_task_failoutright(tid) 2237 if tid not in self.runq_complete:
2238 self.sq_task_failoutright(tid)
2238 return True 2239 return True
2239 2240
2240 if len(self.failed_tids) != 0: 2241 if len(self.failed_tids) != 0: