summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py90
1 files changed, 44 insertions, 46 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 94b456a988..94b9cab5ed 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -22,22 +22,25 @@ Handles preparation and execution of a queue of tasks
22# with this program; if not, write to the Free Software Foundation, Inc., 22# with this program; if not, write to the Free Software Foundation, Inc.,
23# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 23# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 24
25import bb, os, sys 25import os
26import sys
26import subprocess 27import subprocess
27import signal 28import signal
28import stat 29import stat
29import fcntl 30import fcntl
30import copy 31import copy
31import logging 32import logging
33import bb
32from bb import msg, data, event 34from bb import msg, data, event
33 35
34bblogger = logging.getLogger("BitBake") 36bblogger = logging.getLogger("BitBake")
37logger = logging.getLogger("BitBake.RunQueue")
35 38
36try: 39try:
37 import cPickle as pickle 40 import cPickle as pickle
38except ImportError: 41except ImportError:
39 import pickle 42 import pickle
40 bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.") 43 logger.info("Importing cPickle failed. Falling back to a very slow implementation.")
41 44
42class RunQueueStats: 45class RunQueueStats:
43 """ 46 """
@@ -363,14 +366,14 @@ class RunQueueData:
363 for task in range(numTasks): 366 for task in range(numTasks):
364 if task_done[task] is False or deps_left[task] != 0: 367 if task_done[task] is False or deps_left[task] != 0:
365 problem_tasks.append(task) 368 problem_tasks.append(task)
366 bb.msg.debug(2, bb.msg.domain.RunQueue, "Task %s (%s) is not buildable\n" % (task, self.get_user_idstring(task))) 369 logger.debug(2, "Task %s (%s) is not buildable\n", task, self.get_user_idstring(task))
367 bb.msg.debug(2, bb.msg.domain.RunQueue, "(Complete marker was %s and the remaining dependency count was %s)\n\n" % (task_done[task], deps_left[task])) 370 logger.debug(2, "(Complete marker was %s and the remaining dependency count was %s)\n\n", task_done[task], deps_left[task])
368 371
369 if problem_tasks: 372 if problem_tasks:
370 message = "Unbuildable tasks were found.\n" 373 message = "Unbuildable tasks were found.\n"
371 message = message + "These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.\n\n" 374 message = message + "These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.\n\n"
372 message = message + "Identifying dependency loops (this may take a short while)...\n" 375 message = message + "Identifying dependency loops (this may take a short while)...\n"
373 bb.msg.error(bb.msg.domain.RunQueue, message) 376 logger.error(message)
374 377
375 msgs = self.circular_depchains_handler(problem_tasks) 378 msgs = self.circular_depchains_handler(problem_tasks)
376 379
@@ -398,7 +401,7 @@ class RunQueueData:
398 # Nothing to do 401 # Nothing to do
399 return 0 402 return 0
400 403
401 bb.msg.note(1, bb.msg.domain.RunQueue, "Preparing runqueue") 404 logger.info("Preparing runqueue")
402 405
403 # Step A - Work out a list of tasks to run 406 # Step A - Work out a list of tasks to run
404 # 407 #
@@ -445,7 +448,7 @@ class RunQueueData:
445 fn = taskData.fn_index[fnid] 448 fn = taskData.fn_index[fnid]
446 task_deps = self.dataCache.task_deps[fn] 449 task_deps = self.dataCache.task_deps[fn]
447 450
448 bb.msg.debug(2, bb.msg.domain.RunQueue, "Processing %s:%s" %(fn, taskData.tasks_name[task])) 451 logger.debug(2, "Processing %s:%s", fn, taskData.tasks_name[task])
449 452
450 if fnid not in taskData.failed_fnids: 453 if fnid not in taskData.failed_fnids:
451 454
@@ -505,7 +508,7 @@ class RunQueueData:
505 # Rmove all self references 508 # Rmove all self references
506 if task in depends: 509 if task in depends:
507 newdep = [] 510 newdep = []
508 bb.msg.debug(2, bb.msg.domain.RunQueue, "Task %s (%s %s) contains self reference! %s" % (task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], depends)) 511 logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], depends)
509 for dep in depends: 512 for dep in depends:
510 if task != dep: 513 if task != dep:
511 newdep.append(dep) 514 newdep.append(dep)
@@ -567,7 +570,7 @@ class RunQueueData:
567 # as active too. If the task is to be 'forced', clear its stamp. Once 570 # as active too. If the task is to be 'forced', clear its stamp. Once
568 # all active tasks are marked, prune the ones we don't need. 571 # all active tasks are marked, prune the ones we don't need.
569 572
570 bb.msg.note(2, bb.msg.domain.RunQueue, "Marking Active Tasks") 573 logger.verbose("Marking Active Tasks")
571 574
572 def mark_active(listid, depth): 575 def mark_active(listid, depth):
573 """ 576 """
@@ -600,7 +603,7 @@ class RunQueueData:
600 603
601 # Remove stamps for targets if force mode active 604 # Remove stamps for targets if force mode active
602 if self.cooker.configuration.force: 605 if self.cooker.configuration.force:
603 bb.msg.note(2, bb.msg.domain.RunQueue, "Remove stamp %s, %s" % (target[1], fn)) 606 logger.verbose("Remove stamp %s, %s", target[1], fn)
604 bb.build.del_stamp(target[1], self.dataCache, fn) 607 bb.build.del_stamp(target[1], self.dataCache, fn)
605 608
606 if fnid in taskData.failed_fnids: 609 if fnid in taskData.failed_fnids:
@@ -643,7 +646,7 @@ class RunQueueData:
643 else: 646 else:
644 bb.msg.fatal(bb.msg.domain.RunQueue, "No active tasks and not in --continue mode?! Please report this bug.") 647 bb.msg.fatal(bb.msg.domain.RunQueue, "No active tasks and not in --continue mode?! Please report this bug.")
645 648
646 bb.msg.note(2, bb.msg.domain.RunQueue, "Pruned %s inactive tasks, %s left" % (delcount, len(self.runq_fnid))) 649 logger.verbose("Pruned %s inactive tasks, %s left", delcount, len(self.runq_fnid))
647 650
648 # Remap the dependencies to account for the deleted tasks 651 # Remap the dependencies to account for the deleted tasks
649 # Check we didn't delete a task we depend on 652 # Check we didn't delete a task we depend on
@@ -656,7 +659,7 @@ class RunQueueData:
656 newdeps.append(maps[origdep]) 659 newdeps.append(maps[origdep])
657 self.runq_depends[listid] = set(newdeps) 660 self.runq_depends[listid] = set(newdeps)
658 661
659 bb.msg.note(2, bb.msg.domain.RunQueue, "Assign Weightings") 662 logger.verbose("Assign Weightings")
660 663
661 # Generate a list of reverse dependencies to ease future calculations 664 # Generate a list of reverse dependencies to ease future calculations
662 for listid in range(len(self.runq_fnid)): 665 for listid in range(len(self.runq_fnid)):
@@ -675,7 +678,7 @@ class RunQueueData:
675 #self.dump_data(taskData) 678 #self.dump_data(taskData)
676 bb.msg.fatal(bb.msg.domain.RunQueue, "Task %s (%s) has circular dependency on %s (%s)" % (taskData.fn_index[self.runq_fnid[dep]], self.runq_task[dep], taskData.fn_index[self.runq_fnid[listid]], self.runq_task[listid])) 679 bb.msg.fatal(bb.msg.domain.RunQueue, "Task %s (%s) has circular dependency on %s (%s)" % (taskData.fn_index[self.runq_fnid[dep]], self.runq_task[dep], taskData.fn_index[self.runq_fnid[listid]], self.runq_task[listid]))
677 680
678 bb.msg.note(2, bb.msg.domain.RunQueue, "Compute totals (have %s endpoint(s))" % len(endpoints)) 681 logger.verbose("Compute totals (have %s endpoint(s))", len(endpoints))
679 682
680 # Calculate task weights 683 # Calculate task weights
681 # Check of higher length circular dependencies 684 # Check of higher length circular dependencies
@@ -698,9 +701,7 @@ class RunQueueData:
698 for prov in prov_list: 701 for prov in prov_list:
699 if len(prov_list[prov]) > 1 and prov not in self.multi_provider_whitelist: 702 if len(prov_list[prov]) > 1 and prov not in self.multi_provider_whitelist:
700 error = True 703 error = True
701 bb.msg.error(bb.msg.domain.RunQueue, "Multiple .bb files are due to be built which each provide %s (%s).\n This usually means one provides something the other doesn't and should." % (prov, " ".join(prov_list[prov]))) 704 logger.error("Multiple .bb files are due to be built which each provide %s (%s).\n This usually means one provides something the other doesn't and should.", prov, " ".join(prov_list[prov]))
702 #if error:
703 # bb.msg.fatal(bb.msg.domain.RunQueue, "Corrupted metadata configuration detected, aborting...")
704 705
705 706
706 # Create a whitelist usable by the stamp checks 707 # Create a whitelist usable by the stamp checks
@@ -762,20 +763,20 @@ class RunQueueData:
762 """ 763 """
763 Dump some debug information on the internal data structures 764 Dump some debug information on the internal data structures
764 """ 765 """
765 bb.msg.debug(3, bb.msg.domain.RunQueue, "run_tasks:") 766 logger.debug(3, "run_tasks:")
766 for task in range(len(self.rqdata.runq_task)): 767 for task in range(len(self.rqdata.runq_task)):
767 bb.msg.debug(3, bb.msg.domain.RunQueue, " (%s)%s - %s: %s Deps %s RevDeps %s" % (task, 768 logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s" % (task,
768 taskQueue.fn_index[self.rqdata.runq_fnid[task]], 769 taskQueue.fn_index[self.rqdata.runq_fnid[task]],
769 self.rqdata.runq_task[task], 770 self.rqdata.runq_task[task],
770 self.rqdata.runq_weight[task], 771 self.rqdata.runq_weight[task],
771 self.rqdata.runq_depends[task], 772 self.rqdata.runq_depends[task],
772 self.rqdata.runq_revdeps[task])) 773 self.rqdata.runq_revdeps[task]))
773 774
774 bb.msg.debug(3, bb.msg.domain.RunQueue, "sorted_tasks:") 775 logger.debug(3, "sorted_tasks:")
775 for task1 in range(len(self.rqdata.runq_task)): 776 for task1 in range(len(self.rqdata.runq_task)):
776 if task1 in self.prio_map: 777 if task1 in self.prio_map:
777 task = self.prio_map[task1] 778 task = self.prio_map[task1]
778 bb.msg.debug(3, bb.msg.domain.RunQueue, " (%s)%s - %s: %s Deps %s RevDeps %s" % (task, 779 logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s" % (task,
779 taskQueue.fn_index[self.rqdata.runq_fnid[task]], 780 taskQueue.fn_index[self.rqdata.runq_fnid[task]],
780 self.rqdata.runq_task[task], 781 self.rqdata.runq_task[task],
781 self.rqdata.runq_weight[task], 782 self.rqdata.runq_weight[task],
@@ -913,12 +914,12 @@ class RunQueue:
913 914
914 # If the stamp is missing its not current 915 # If the stamp is missing its not current
915 if not os.access(stampfile, os.F_OK): 916 if not os.access(stampfile, os.F_OK):
916 bb.msg.debug(2, bb.msg.domain.RunQueue, "Stampfile %s not available\n" % stampfile) 917 logger.debug(2, "Stampfile %s not available\n" % stampfile)
917 return False 918 return False
918 # If its a 'nostamp' task, it's not current 919 # If its a 'nostamp' task, it's not current
919 taskdep = self.rqdata.dataCache.task_deps[fn] 920 taskdep = self.rqdata.dataCache.task_deps[fn]
920 if 'nostamp' in taskdep and taskname in taskdep['nostamp']: 921 if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
921 bb.msg.debug(2, bb.msg.domain.RunQueue, "%s.%s is nostamp\n" % (fn, taskname)) 922 logger.debug(2, "%s.%s is nostamp\n" % (fn, taskname))
922 return False 923 return False
923 924
924 if taskname.endswith("_setscene"): 925 if taskname.endswith("_setscene"):
@@ -938,10 +939,10 @@ class RunQueue:
938 continue 939 continue
939 if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist): 940 if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
940 if not t2: 941 if not t2:
941 bb.msg.debug(2, bb.msg.domain.RunQueue, "Stampfile %s does not exist" % (stampfile2)) 942 logger.debug(2, "Stampfile %s does not exist" % (stampfile2))
942 iscurrent = False 943 iscurrent = False
943 if t1 < t2: 944 if t1 < t2:
944 bb.msg.debug(2, bb.msg.domain.RunQueue, "Stampfile %s < %s" % (stampfile, stampfile2)) 945 logger.debug(2, "Stampfile %s < %s" % (stampfile, stampfile2))
945 iscurrent = False 946 iscurrent = False
946 947
947 return iscurrent 948 return iscurrent
@@ -972,7 +973,7 @@ class RunQueue:
972 retval = self.rqexe.execute() 973 retval = self.rqexe.execute()
973 974
974 if self.state is runQueueRunInit: 975 if self.state is runQueueRunInit:
975 bb.msg.note(1, bb.msg.domain.RunQueue, "Executing RunQueue Tasks") 976 logger.info("Executing RunQueue Tasks")
976 self.rqexe = RunQueueExecuteTasks(self) 977 self.rqexe = RunQueueExecuteTasks(self)
977 self.state = runQueueRunning 978 self.state = runQueueRunning
978 979
@@ -991,7 +992,7 @@ class RunQueue:
991 992
992 if self.state is runQueueComplete: 993 if self.state is runQueueComplete:
993 # All done 994 # All done
994 bb.msg.note(1, bb.msg.domain.RunQueue, "Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed." % (self.rqexe.stats.completed, self.rqexe.stats.skipped, self.rqexe.stats.failed)) 995 logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed." % (self.rqexe.stats.completed, self.rqexe.stats.skipped, self.rqexe.stats.failed))
995 return False 996 return False
996 997
997 if self.state is runQueueChildProcess: 998 if self.state is runQueueChildProcess:
@@ -1059,7 +1060,7 @@ class RunQueueExecute:
1059 1060
1060 def finish_now(self): 1061 def finish_now(self):
1061 if self.stats.active: 1062 if self.stats.active:
1062 bb.msg.note(1, bb.msg.domain.RunQueue, "Sending SIGTERM to remaining %s tasks" % self.stats.active) 1063 logger.info("Sending SIGTERM to remaining %s tasks", self.stats.active)
1063 for k, v in self.build_pids.iteritems(): 1064 for k, v in self.build_pids.iteritems():
1064 try: 1065 try:
1065 os.kill(-k, signal.SIGTERM) 1066 os.kill(-k, signal.SIGTERM)
@@ -1101,7 +1102,7 @@ class RunQueueExecute:
1101 fakedirs = (the_data.getVar("FAKEROOTDIRS", True) or "").split() 1102 fakedirs = (the_data.getVar("FAKEROOTDIRS", True) or "").split()
1102 for p in fakedirs: 1103 for p in fakedirs:
1103 bb.mkdirhier(p) 1104 bb.mkdirhier(p)
1104 bb.msg.debug(2, bb.msg.domain.RunQueue, "Running %s:%s under fakeroot, state dir is %s" % (fn, taskname, fakedirs)) 1105 logger.debug(2, "Running %s:%s under fakeroot, state dir is %s" % (fn, taskname, fakedirs))
1105 1106
1106 env['PATH'] = self.cooker.configuration.initial_path 1107 env['PATH'] = self.cooker.configuration.initial_path
1107 1108
@@ -1220,7 +1221,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1220 for scheduler in self.rqdata.schedulers: 1221 for scheduler in self.rqdata.schedulers:
1221 if self.scheduler == scheduler.name: 1222 if self.scheduler == scheduler.name:
1222 self.sched = scheduler(self, self.rqdata) 1223 self.sched = scheduler(self, self.rqdata)
1223 bb.msg.debug(1, bb.msg.domain.RunQueue, "Using runqueue scheduler '%s'" % scheduler.name) 1224 logger.debug(1, "Using runqueue scheduler '%s'" % scheduler.name)
1224 break 1225 break
1225 else: 1226 else:
1226 bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" % 1227 bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" %
@@ -1246,7 +1247,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1246 self.runq_buildable[revdep] = 1 1247 self.runq_buildable[revdep] = 1
1247 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[revdep]] 1248 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[revdep]]
1248 taskname = self.rqdata.runq_task[revdep] 1249 taskname = self.rqdata.runq_task[revdep]
1249 bb.msg.debug(1, bb.msg.domain.RunQueue, "Marking task %s (%s, %s) as buildable" % (revdep, fn, taskname)) 1250 logger.debug(1, "Marking task %s (%s, %s) as buildable" % (revdep, fn, taskname))
1250 1251
1251 def task_complete(self, task): 1252 def task_complete(self, task):
1252 self.stats.taskCompleted() 1253 self.stats.taskCompleted()
@@ -1258,7 +1259,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1258 Called when a task has failed 1259 Called when a task has failed
1259 Updates the state engine with the failure 1260 Updates the state engine with the failure
1260 """ 1261 """
1261 bb.msg.error(bb.msg.domain.RunQueue, "Task %s (%s) failed with %s" % (task, self.rqdata.get_user_idstring(task), exitcode)) 1262 logger.error("Task %s (%s) failed with %s" % (task, self.rqdata.get_user_idstring(task), exitcode))
1262 self.stats.taskFailed() 1263 self.stats.taskFailed()
1263 fnid = self.rqdata.runq_fnid[task] 1264 fnid = self.rqdata.runq_fnid[task]
1264 self.failed_fnids.append(fnid) 1265 self.failed_fnids.append(fnid)
@@ -1287,7 +1288,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1287 1288
1288 taskname = self.rqdata.runq_task[task] 1289 taskname = self.rqdata.runq_task[task]
1289 if self.rq.check_stamp_task(task, taskname): 1290 if self.rq.check_stamp_task(task, taskname):
1290 bb.msg.debug(2, bb.msg.domain.RunQueue, "Stamp current task %s (%s)" % (task, self.rqdata.get_user_idstring(task))) 1291 logger.debug(2, "Stamp current task %s (%s)" % (task, self.rqdata.get_user_idstring(task)))
1291 self.task_skip(task) 1292 self.task_skip(task)
1292 return True 1293 return True
1293 1294
@@ -1295,8 +1296,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1295 1296
1296 taskdep = self.rqdata.dataCache.task_deps[fn] 1297 taskdep = self.rqdata.dataCache.task_deps[fn]
1297 if 'noexec' in taskdep and taskname in taskdep['noexec']: 1298 if 'noexec' in taskdep and taskname in taskdep['noexec']:
1298 bb.msg.note(1, bb.msg.domain.RunQueue, 1299 logger.info("Noexec task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1299 "Noexec task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1300 self.stats.total, 1300 self.stats.total,
1301 task, 1301 task,
1302 self.rqdata.get_user_idstring(task))) 1302 self.rqdata.get_user_idstring(task)))
@@ -1306,8 +1306,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
1306 self.task_complete(task) 1306 self.task_complete(task)
1307 return True 1307 return True
1308 1308
1309 bb.msg.note(1, bb.msg.domain.RunQueue, 1309 logger.info("Running task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1310 "Running task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1311 self.stats.total, 1310 self.stats.total,
1312 task, 1311 task,
1313 self.rqdata.get_user_idstring(task))) 1312 self.rqdata.get_user_idstring(task)))
@@ -1334,11 +1333,11 @@ class RunQueueExecuteTasks(RunQueueExecute):
1334 # Sanity Checks 1333 # Sanity Checks
1335 for task in range(self.stats.total): 1334 for task in range(self.stats.total):
1336 if self.runq_buildable[task] == 0: 1335 if self.runq_buildable[task] == 0:
1337 bb.msg.error(bb.msg.domain.RunQueue, "Task %s never buildable!" % task) 1336 logger.error("Task %s never buildable!" % task)
1338 if self.runq_running[task] == 0: 1337 if self.runq_running[task] == 0:
1339 bb.msg.error(bb.msg.domain.RunQueue, "Task %s never ran!" % task) 1338 logger.error("Task %s never ran!" % task)
1340 if self.runq_complete[task] == 0: 1339 if self.runq_complete[task] == 0:
1341 bb.msg.error(bb.msg.domain.RunQueue, "Task %s never completed!" % task) 1340 logger.error("Task %s never completed!" % task)
1342 self.rq.state = runQueueComplete 1341 self.rq.state = runQueueComplete
1343 return True 1342 return True
1344 1343
@@ -1461,12 +1460,12 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1461 1460
1462 for task in range(len(self.sq_revdeps)): 1461 for task in range(len(self.sq_revdeps)):
1463 if task not in valid_new and task not in noexec: 1462 if task not in valid_new and task not in noexec:
1464 bb.msg.debug(2, bb.msg.domain.RunQueue, "No package found so skipping setscene task %s" % (self.rqdata.get_user_idstring(self.rqdata.runq_setscene[task]))) 1463 logger.debug(2, "No package found so skipping setscene task %s" % (self.rqdata.get_user_idstring(self.rqdata.runq_setscene[task])))
1465 self.task_failoutright(task) 1464 self.task_failoutright(task)
1466 1465
1467 #print(str(valid)) 1466 #print(str(valid))
1468 1467
1469 bb.msg.note(1, bb.msg.domain.RunQueue, "Executing SetScene Tasks") 1468 logger.info("Executing SetScene Tasks")
1470 1469
1471 self.rq.state = runQueueSceneRun 1470 self.rq.state = runQueueSceneRun
1472 1471
@@ -1484,7 +1483,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1484 """ 1483 """
1485 1484
1486 index = self.rqdata.runq_setscene[task] 1485 index = self.rqdata.runq_setscene[task]
1487 bb.msg.debug(1, bb.msg.domain.RunQueue, "Found task %s could be accelerated" % self.rqdata.get_user_idstring(index)) 1486 logger.debug(1, "Found task %s could be accelerated" % self.rqdata.get_user_idstring(index))
1488 1487
1489 self.scenequeue_covered.add(task) 1488 self.scenequeue_covered.add(task)
1490 self.scenequeue_updatecounters(task) 1489 self.scenequeue_updatecounters(task)
@@ -1539,7 +1538,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1539 1538
1540 taskname = self.rqdata.runq_task[realtask] + "_setscene" 1539 taskname = self.rqdata.runq_task[realtask] + "_setscene"
1541 if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask]): 1540 if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask]):
1542 bb.msg.debug(2, bb.msg.domain.RunQueue, "Stamp for underlying task %s (%s) is current so skipping setscene varient" % (task, self.rqdata.get_user_idstring(task))) 1541 logger.debug(2, "Stamp for underlying task %s (%s) is current so skipping setscene varient" % (task, self.rqdata.get_user_idstring(task)))
1543 self.task_failoutright(task) 1542 self.task_failoutright(task)
1544 return True 1543 return True
1545 1544
@@ -1550,12 +1549,11 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1550 return True 1549 return True
1551 1550
1552 if self.rq.check_stamp_task(realtask, taskname): 1551 if self.rq.check_stamp_task(realtask, taskname):
1553 bb.msg.debug(2, bb.msg.domain.RunQueue, "Setscene stamp current task %s (%s) so skip it and its dependencies" % (task, self.rqdata.get_user_idstring(realtask))) 1552 logger.debug(2, "Setscene stamp current task %s (%s) so skip it and its dependencies" % (task, self.rqdata.get_user_idstring(realtask)))
1554 self.task_skip(task) 1553 self.task_skip(task)
1555 return True 1554 return True
1556 1555
1557 bb.msg.note(1, bb.msg.domain.RunQueue, 1556 logger.info("Running setscene task %d of %d (%s:%s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1558 "Running setscene task %d of %d (%s:%s)" % (self.stats.completed + self.stats.active + self.stats.failed + 1,
1559 self.stats.total, fn, taskname)) 1557 self.stats.total, fn, taskname))
1560 1558
1561 pid, pipein, pipeout = self.fork_off_task(fn, realtask, taskname) 1559 pid, pipein, pipeout = self.fork_off_task(fn, realtask, taskname)