Patchwork [bitbake-devel] process: Deal with infinite looping of the server

login
register
mail settings
Submitter Richard Purdie
Date Aug. 20, 2014, 10:40 p.m.
Message ID <1408574430.1669.97.camel@ted>
Download mbox | patch
Permalink /patch/78713/
State New
Headers show

Comments

Richard Purdie - Aug. 20, 2014, 10:40 p.m.
Currently if an exception occurs, we just run the idle handler again and
again, usually looping indefinitely. Chances are the exception that occurred
will keep occurring 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>

Patch

diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index a0bcbfa..7fdf964 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/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)