diff options
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 90 |
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 | ||
| 25 | import bb, os, sys | 25 | import os |
| 26 | import sys | ||
| 26 | import subprocess | 27 | import subprocess |
| 27 | import signal | 28 | import signal |
| 28 | import stat | 29 | import stat |
| 29 | import fcntl | 30 | import fcntl |
| 30 | import copy | 31 | import copy |
| 31 | import logging | 32 | import logging |
| 33 | import bb | ||
| 32 | from bb import msg, data, event | 34 | from bb import msg, data, event |
| 33 | 35 | ||
| 34 | bblogger = logging.getLogger("BitBake") | 36 | bblogger = logging.getLogger("BitBake") |
| 37 | logger = logging.getLogger("BitBake.RunQueue") | ||
| 35 | 38 | ||
| 36 | try: | 39 | try: |
| 37 | import cPickle as pickle | 40 | import cPickle as pickle |
| 38 | except ImportError: | 41 | except 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 | ||
| 42 | class RunQueueStats: | 45 | class 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) |
