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: 51bdd6cb3bd9e2c02e261fb578bb945b86b82c75)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2021-09-07 12:14:29 +01:00
parent 745bc89574
commit 7e599a1feb

View File

@@ -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: