Skip to contentSkip to conversation

lib/bb/runqueue.py: fix exceptions with -k and failed targets

PATCH Applied Paul Eggleton 2 participants 2 messages Sep 23, 2012 – Sep 24, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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/lib/bb/runqueue.py |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
bitbake/lib/bb/runqueue.py +3 -1
index bc2eb87..b90b7e7 100644
@@ -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
Signature · 1 line
1.7.9.5
#1 lore raw
Quoted 9 lines · Paul Eggleton

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).

Quoted 6 lines

Fixes [YOCTO #3133].

---
 bitbake/lib/bb/runqueue.py |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Merged to master, thanks.

Richard