Index: tools/testrunner/local/pool.py |
diff --git a/tools/testrunner/local/pool.py b/tools/testrunner/local/pool.py |
index 6d123fd4e5e7fbd9e79688dc151dc81aac973ddd..99996ee3ce49ccc28053301e2f831e420af52d20 100644 |
--- a/tools/testrunner/local/pool.py |
+++ b/tools/testrunner/local/pool.py |
@@ -109,6 +109,7 @@ class Pool(): |
process boundary. |
""" |
try: |
+ internal_error = False |
gen = iter(gen) |
self.advance = self._advance_more |
@@ -134,7 +135,9 @@ class Pool(): |
yield MaybeResult.create_heartbeat() |
self.count -= 1 |
if result.exception: |
- # Ignore items with unexpected exceptions. |
+ # TODO(machenbach): Handle a few known types of internal errors |
+ # gracefully, e.g. missing test files. |
+ internal_error = True |
continue |
elif result.break_now: |
# A keyboard interrupt happened in one of the worker processes. |
@@ -144,6 +147,8 @@ class Pool(): |
self.advance(gen) |
finally: |
self.terminate() |
+ if internal_error: |
+ raise Exception("Internal error in a worker process.") |
def _advance_more(self, gen): |
while self.count < self.num_workers * self.BUFFER_FACTOR: |