From 90e5cce0e31ed40c17b6cfed46945c8536c99ee3 Mon Sep 17 00:00:00 2001 From: Jan Brzezanski Date: Thu, 18 Feb 2021 17:53:32 +0100 Subject: bitbake: Force parser shutdown after catching an exception Commit bebef58b21bdff7a3ee1fa2449b7df19144f26fd introduced forcing parser shutdown as default in case of build abort. In this case bitbake sometimes hangs after facing error during parsing, waiting for child processes to finish. Killing it then will spawn zombie processes. Thus we force the shutdown after catching an exception. (Bitbake rev: 915330e1dbae1ee8fd9a0358decf2c294f771961) Signed-off-by: Jan Brzezanski Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'bitbake/lib/bb') diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 0e492b9be9..f4ab797edf 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -2211,18 +2211,18 @@ class CookerParser(object): except bb.BBHandledException as exc: self.error += 1 logger.error('Failed to parse recipe: %s' % exc.recipe) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except ParsingFailure as exc: self.error += 1 logger.error('Unable to parse %s: %s' % (exc.recipe, bb.exceptions.to_string(exc.realexception))) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except bb.parse.ParseError as exc: self.error += 1 logger.error(str(exc)) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except bb.data_smart.ExpansionError as exc: self.error += 1 @@ -2231,7 +2231,7 @@ class CookerParser(object): tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback)) logger.error('ExpansionError during parsing %s', value.recipe, exc_info=(etype, value, tb)) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False except Exception as exc: self.error += 1 @@ -2243,7 +2243,7 @@ class CookerParser(object): # Most likely, an exception occurred during raising an exception import traceback logger.error('Exception during parse: %s' % traceback.format_exc()) - self.shutdown(clean=False) + self.shutdown(clean=False, force=True) return False self.current += 1 -- cgit v1.2.3-54-g00ecf