[gnome-continuous-yocto/gnomeostree-3.28-rocko: 3890/8267] bitbake: runqueue: Fix setscene issues with multiconfig
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 3890/8267] bitbake: runqueue: Fix setscene issues with multiconfig
- Date: Sun, 17 Dec 2017 01:16:05 +0000 (UTC)
commit f048db1c6444d93578b4648938da18f22985e389
Author: Richard Purdie <richard purdie linuxfoundation org>
Date: Wed Dec 21 13:35:53 2016 +0000
bitbake: runqueue: Fix setscene issues with multiconfig
setscene was being entirelu skipped for multiconfig variants as the tasks
were simply not being spotted. If the default config was also being built
it masked the problem. When this was fixed by using taskfn instead of fn
in lookups against dataCache, several other instances of this problem were
highlighted.
This goes through and corrects the setscene code to correclty use taskfn
instead of fn in the appropriate places meaning setscene tasks for multiconfig
now work correctly.
(Bitbake rev: cead85cf219c07b40aeb7c0d948c25f0429136db)
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/runqueue.py | 40 ++++++++++++++++++++--------------------
1 files changed, 20 insertions(+), 20 deletions(-)
---
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 25a2684..10c5c2e 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -290,8 +290,8 @@ class RunQueueData:
return tid + task_name_suffix
def get_short_user_idstring(self, task, task_name_suffix = ""):
- (mc, fn, taskname, _) = split_tid_mcfn(task)
- pn = self.dataCaches[mc].pkg_fn[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(task)
+ pn = self.dataCaches[mc].pkg_fn[taskfn]
taskname = taskname_from_tid(task) + task_name_suffix
return "%s:%s" % (pn, taskname)
@@ -885,14 +885,14 @@ class RunQueueData:
if not self.cooker.configuration.nosetscene:
for tid in self.runtaskentries:
(mc, fn, taskname, _) = split_tid_mcfn(tid)
- setscenetid = fn + ":" + taskname + "_setscene"
+ setscenetid = tid + "_setscene"
if setscenetid not in taskData[mc].taskentries:
continue
self.runq_setscene_tids.append(tid)
def invalidate_task(tid, error_nostamp):
- (mc, fn, taskname, _) = split_tid_mcfn(tid)
- taskdep = self.dataCaches[mc].task_deps[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ taskdep = self.dataCaches[mc].task_deps[taskfn]
if fn + ":" + taskname not in taskData[mc].taskentries:
logger.warning("Task %s does not exist, invalidating this task will have no effect" %
taskname)
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
@@ -1339,7 +1339,7 @@ class RunQueue:
continue
sq_fn.append(fn)
- sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[fn])
+ sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[taskfn])
sq_hash.append(self.rqdata.runtaskentries[tid].hash)
sq_taskname.append(taskname)
sq_task.append(tid)
@@ -1419,8 +1419,8 @@ class RunQueue:
for tid in invalidtasks:
- (mc, fn, taskname, _) = split_tid_mcfn(tid)
- pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
h = self.rqdata.runtaskentries[tid].hash
matches = bb.siggen.find_siginfo(pn, taskname, [], self.cfgData)
match = None
@@ -1523,8 +1523,8 @@ class RunQueueExecute:
taskdata = {}
taskdeps.add(task)
for dep in taskdeps:
- (mc, fn, taskname, _) = split_tid_mcfn(dep)
- pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(dep)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
taskdata[dep] = [pn, taskname, fn]
call = self.rq.depvalidate + "(task, taskdata, notneeded, d)"
locs = { "task" : task, "taskdata" : taskdata, "notneeded" : self.scenequeue_notneeded, "d" :
self.cooker.data }
@@ -1724,7 +1724,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
# Check tasks that are going to run against the whitelist
def check_norun_task(tid, showerror=False):
- (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
# Ignore covered tasks
if tid in self.rq.scenequeue_covered:
return False
@@ -1732,11 +1732,11 @@ class RunQueueExecuteTasks(RunQueueExecute):
if self.rq.check_stamp_task(tid, taskname, cache=self.stampcache):
return False
# Ignore noexec tasks
- taskdep = self.rqdata.dataCaches[mc].task_deps[fn]
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'noexec' in taskdep and taskname in taskdep['noexec']:
return False
- pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
if showerror:
if tid in self.rqdata.runq_setscene_tids:
@@ -1996,8 +1996,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
# e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene"
# Note that anything explicitly depended upon will have its reverse dependencies removed to avoid
circular dependencies
for tid in self.rqdata.runq_setscene_tids:
- (mc, fn, taskname, _) = split_tid_mcfn(tid)
- realtid = fn + ":" + taskname + "_setscene"
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ realtid = tid + "_setscene"
idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends
for (depname, idependtask) in idepends:
@@ -2062,7 +2062,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
for tid in self.sq_revdeps:
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
- taskdep = self.rqdata.dataCaches[mc].task_deps[fn]
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'noexec' in taskdep and taskname in taskdep['noexec']:
noexec.append(tid)
@@ -2083,7 +2083,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
continue
sq_fn.append(fn)
- sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[fn])
+ sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[taskfn])
sq_hash.append(self.rqdata.runtaskentries[tid].hash)
sq_taskname.append(taskname)
sq_task.append(tid)
@@ -2131,8 +2131,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
def check_taskfail(self, task):
if self.rqdata.setscenewhitelist:
realtask = task.split('_setscene')[0]
- (mc, fn, taskname, _) = split_tid_mcfn(realtask)
- pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(realtask)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
logger.error('Task %s.%s failed' % (pn, taskname + "_setscene"))
self.rq.state = runQueueCleanUp
@@ -2262,7 +2262,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
def getsetscenedeps(tid):
deps = set()
(mc, fn, taskname, _) = split_tid_mcfn(tid)
- realtid = fn + ":" + taskname + "_setscene"
+ realtid = tid + "_setscene"
idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends
for (depname, idependtask) in idepends:
if depname not in self.rqdata.taskData[mc].build_targets:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]