From 0bdde689f651a22a2ff925bcdd88755cde592b3d Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Sun, 23 Sep 2012 14:14:24 +0100 Subject: bitbake: lib/bb/runqueue.py: fix exceptions with -k and failed targets If a target dependency is marked as failed and yet we are continuing on because -k has been specified, don't try to access the dependency's data in taskData.build_targets since it will have been removed. This fixes "IndexError: list index out of range" errors in this situation. Also, do not print the "unhandled exception" message when SystemExit is raised since we will have reported the actual error already in this case (e.g. when -k has been specified and some targets failed). Fixes [YOCTO #3133]. (Bitbake rev: 70eebc184eb1ab3678be87bed019b5beadecdc89) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index bc2eb8772e..b90b7e7e4a 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -466,7 +466,7 @@ class RunQueueData: # (makes sure sometask runs after targetname's someothertask) idepends = taskData.tasks_idepends[task] for (depid, idependtask) in idepends: - if depid in taskData.build_targets: + if depid in taskData.build_targets and not depid in taskData.failed_deps: # Won't be in build_targets if ASSUME_PROVIDED depdata = taskData.build_targets[depid][0] if depdata is not None: @@ -932,6 +932,8 @@ class RunQueue: return self._execute_runqueue() except bb.runqueue.TaskFailure: raise + except SystemExit: + raise except: logger.error("An uncaught exception occured in runqueue, please see the failure below:") self.state = runQueueComplete -- cgit v1.2.3-54-g00ecf