From fec2b85689bba1d26ad6f376bc11cc29bb27cbe5 Mon Sep 17 00:00:00 2001 From: Stacy Gaikovaia Date: Fri, 23 Oct 2020 10:17:56 -0400 Subject: main: Handle cooker daemon startup error On startup, bitbake spawns a cooker daemon and waits for it's acknowledgement signal. If the acknowledgement doesn't happen in time,the bitbake object will fail to initialize and exit. The error that occurs in this case isn't handled by the existing try - catch block because SystemExit inherits from a different base Exception class. This commit adds SystemExit to the list of expected bitbake server startup errors. [YOCTO #13993] Signed-off-by: Stacy Gaikovaia Signed-off-by: Richard Purdie --- lib/bb/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/bb/main.py b/lib/bb/main.py index 7990195ea..e92e409f0 100755 --- a/lib/bb/main.py +++ b/lib/bb/main.py @@ -456,15 +456,17 @@ def setup_bitbake(configParams, extrafeatures=None): break except BBMainFatal: raise - except (Exception, bb.server.process.ProcessTimeout) as e: + except (Exception, bb.server.process.ProcessTimeout, SystemExit) as e: + # SystemExit does not inherit from the Exception class, needs to be included explicitly if not retries: raise retries -= 1 tryno = 8 - retries - if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError, EOFError)): + if isinstance(e, (bb.server.process.ProcessTimeout, BrokenPipeError, EOFError, SystemExit)): logger.info("Retrying server connection (#%d)..." % tryno) else: logger.info("Retrying server connection (#%d)... (%s)" % (tryno, traceback.format_exc())) + if not retries: bb.fatal("Unable to connect to bitbake server, or start one (server startup failures would be in bitbake-cookerdaemon.log).") bb.event.print_ui_queue() -- cgit 1.2.3-korg