summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAníbal Limón <anibal.limon@linux.intel.com>2017-02-02 16:29:21 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-19 06:28:41 -0800
commit61ebe9a026652e32f9482f66fc3fe7a8672fc093 (patch)
tree3fb7135b62c8cc591881689b37920ab7a6374e03
parent52d87e4a58a52174e8e0b6297abaac8fd93ffcc3 (diff)
downloadbitbake-contrib-61ebe9a026652e32f9482f66fc3fe7a8672fc093.tar.gz
bitbake-contrib-61ebe9a026652e32f9482f66fc3fe7a8672fc093.tar.bz2
bitbake-contrib-61ebe9a026652e32f9482f66fc3fe7a8672fc093.zip
bitbake-layers: Handle exception raised bytinfoil.prepare()
The tinfoil.prepare method can raise Exceptions when is parsing initial data so add this call inside try, finally to avoid get blocked for don't call tinfoil.shutdown(). The tinfoil_init function was remove because isn't make sense now since tinfoil.prepare() needs to be inside try, finally closures. Example of raised exception and gets blocked: $ bitbake-layers add-layer ~/repos/meta-openembedded/meta-python/ Traceback (most recent call last): File "/home/alimon/repos/poky/bitbake/bin/bitbake-layers", line 83, in main tinfoil.prepare(True) ... File "/home/alimon/repos/poky/bitbake/lib/bb/tinfoil.py", line 268, in run_command raise TinfoilCommandFailed(result[1]) bb.tinfoil.TinfoilCommandFailed: Traceback (most recent call last): File "/home/alimon/repos/poky/bitbake/lib/bb/command.py", line 81, in runCommand result = command_method(self, commandline) ... File "/home/alimon/repos/poky/bitbake/lib/bb/cooker.py", line 1314, in handleCollections raise CollectionError("Errors during parsing layer configuration") bb.cooker.CollectionError: Errors during parsing layer configuration Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbin/bitbake-layers13
1 files changed, 3 insertions, 10 deletions
diff --git a/bin/bitbake-layers b/bin/bitbake-layers
index 1e2cfbcac1..66fc7ca21f 100755
--- a/bin/bitbake-layers
+++ b/bin/bitbake-layers
@@ -31,15 +31,6 @@ sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
-
-def tinfoil_init(parserecipes):
- import bb.tinfoil
- tinfoil = bb.tinfoil.Tinfoil(tracking=True)
- tinfoil.prepare(not parserecipes)
- tinfoil.logger.setLevel(logger.getEffectiveLevel())
- return tinfoil
-
-
def logger_create(name, output=sys.stderr):
logger = logging.getLogger(name)
loggerhandler = logging.StreamHandler(output)
@@ -86,8 +77,10 @@ def main():
logger_setup_color(logger, global_args.color)
plugins = []
- tinfoil = tinfoil_init(False)
+ tinfoil = bb.tinfoil.Tinfoil(tracking=True)
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
try:
+ tinfoil.prepare(True)
for path in ([topdir] +
tinfoil.config_data.getVar('BBPATH').split(':')):
pluginpath = os.path.join(path, 'lib', 'bblayers')