[bitbake-devel] [PATCH] bitbake-layers: Handle exception raised bytinfoil.prepare()

Aníbal Limón anibal.limon at linux.intel.com
Tue Feb 14 16:32:27 UTC 2017


ping

On 02/02/2017 04:29 PM, Aníbal Limón wrote:
> 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 at linux.intel.com>
> ---
>  bin/bitbake-layers | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/bin/bitbake-layers b/bin/bitbake-layers
> index 1e2cfbc..66fc7ca 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')
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openembedded.org/pipermail/bitbake-devel/attachments/20170214/563abe3c/attachment-0002.sig>


More information about the bitbake-devel mailing list