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 <jan.brzezanski@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jan Brzezanski
2021-02-18 17:53:32 +01:00
committed by Richard Purdie
parent 4952dcbd51
commit 90e5cce0e3

View File

@@ -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