[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4685/8267] bitbake: bitbake-layers: Handle exception raised bytinfoil.prepare()



commit 10968b4266a74f2f55e66368784e9b9c2aa4f592
Author: Aníbal Limón <anibal limon linux intel com>
Date:   Thu Feb 2 16:29:21 2017 -0600

    bitbake: 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
    
    (Bitbake rev: 61ebe9a026652e32f9482f66fc3fe7a8672fc093)
    
    Signed-off-by: Aníbal Limón <anibal limon linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/bin/bitbake-layers |   13 +++----------
 1 files changed, 3 insertions(+), 10 deletions(-)
---
diff --git a/bitbake/bin/bitbake-layers b/bitbake/bin/bitbake-layers
index 1e2cfbc..66fc7ca 100755
--- a/bitbake/bin/bitbake-layers
+++ b/bitbake/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')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]