runqueue: Fix sstate task dependency problems
PATCH 1/1 runqueue: Fix sstate task dependency problems
If a setscene task has [depends], its possible they may still get executed out of order. The issue is that the dependencies are set to set() for all tasks involved. This patch adds back in explict dependencies within these chains to avoid the setscene task failures.
[YOCTO #6069]
Signed-off-by Richard Purdie <[email protected]>
---
bitbake/lib/bb/runqueue.py +4 -0
@@ -1757,6 +1757,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute): # Have to zero this to avoid circular dependencies sq_revdeps_squash[self.rqdata.runq_setscene.index(taskid)] = set() + for task in self.sq_harddeps: + for dep in self.sq_harddeps[task]: + sq_revdeps_squash[dep].add(task) + #for task in xrange(len(sq_revdeps_squash)): # realtask = self.rqdata.runq_setscene[task] # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task]))
Cool, it works well now.
Tested-by Robert Yang <[email protected]>
// Robert
Quoted 26 lines · Richard Purdie
If a setscene task has [depends], its possible they may still get executed out of order. The issue is that the dependencies are set to
set()for all tasks involved. This patch adds back in explict dependencies within these chains to avoid the setscene task failures.[YOCTO #6069]
Signed-off-by Richard Purdie <[email protected]>---
bitbake/lib/bb/runqueue.py +4
-0@@ -1757,6 +1757,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute): # Have to zero this to avoid circular dependencies sq_revdeps_squash[self.rqdata.runq_setscene.index(taskid)] = set() + for task in self.sq_harddeps: + for dep in self.sq_harddeps[task]: + sq_revdeps_squash[dep].add(task) + #for task in xrange(len(sq_revdeps_squash)): # realtask = self.rqdata.runq_setscene[task] # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task]))