summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-20 22:31:06 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-08-20 23:39:52 +0100
commit1f28d8d3311262427938180435b68f0a35c2b330 (patch)
tree4620a0cf55de456e448ad10e38b1f8c859f9485e
parent000fa81013205dd9bc907ff7a61f06f57637212d (diff)
downloadbitbake-contrib-1f28d8d3311262427938180435b68f0a35c2b330.tar.gz
process: Deal with infinite looping of the server
Currently if an exception occurs, we just run the idle handler again and again, usually looping indefintely. Chances are the exception that occurred will keep occuring and this is not a good place to be. This was breaking the autobuilders with gigabytes of logs. At least improve things so the cooker shuts down gracefully when this happens. Some trace of the original problem may still be present on the console too! Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/server/process.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 577c2503a..84f3a7541 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -139,6 +139,8 @@ class ProcessServer(Process, BaseImplServer):
raise
except Exception:
logger.exception('Running idle function')
+ del self._idlefuns[function]
+ self.quit = True
if nextsleep is not None:
select.select(fds,[],[],nextsleep)