[Toaster] [PATCH 1/2] toaster: buildinfohelper associate build data with built_recipe
Ed Bartosh
ed.bartosh at linux.intel.com
Sat Oct 10 06:45:06 PDT 2015
Hi Michael,
This change caused below 2 tracebacks in my setup(ed/toaster/8279-v2, toaster
run from scratch: rm toaster.sqlite; . ../bitbake/bin/toaster
ERROR: Cannot assign None: "Task.recipe" does not allow null values.
Traceback (most recent call last):
File "/home/ed/git/yocto/poky/bitbake/lib/bb/ui/toasterui.py", line
248, in main
buildinfohelper.store_started_task(event)
File "/home/ed/git/yocto/poky/bitbake/lib/bb/ui/buildinfohelper.py",
line 1043, in store_started_task
self.orm_wrapper.get_update_task_object(task_information)
File "/home/ed/git/yocto/poky/bitbake/lib/bb/ui/buildinfohelper.py",
line 225, in get_update_task_object
task_name=task_information['task_name']
File "/home/ed/git/yocto/poky/bitbake/lib/bb/ui/buildinfohelper.py",
line 99, in _cached_get_or_create
clazz.objects.get_or_create(**kwargs)
File "/usr/lib/python2.7/site-packages/django/db/models/manager.py",
line 154, in get_or_create
return self.get_queryset().get_or_create(**kwargs)
File "/usr/lib/python2.7/site-packages/django/db/models/query.py",
line 381, in get_or_create
obj = self.model(**params)
File "/home/ed/git/yocto/poky/bitbake/lib/toaster/orm/models.py", line
500, in __init__
super(Task, self).__init__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/django/db/models/base.py", line
405, in __init__
setattr(self, field.name, rel_obj)
File
"/usr/lib/python2.7/site-packages/django/db/models/fields/related.py",
line 335, in __set__
(instance._meta.object_name, self.field.name))
ValueError: Cannot assign None: "Task.recipe" does not allow null
values.
Traceback (most recent call last):
File "/home/ed/git/yocto/poky/bitbake/bin/bitbake", line 45, in
<module>
cookerdata.CookerConfiguration()))
File "/home/ed/git/yocto/poky/bitbake/lib/bb/main.py", line 419, in
bitbake_main
return ui_module.main(server_connection.connection,
server_connection.events, configParams)
File "/home/ed/git/yocto/poky/bitbake/lib/bb/ui/toasterui.py", line
368, in main
logger.error("Error data dump %s\n%s\n" ,
traceback.format_tb(curr,1), pformat(curr.tb_frame.f_locals))
File "/usr/lib64/python2.7/pprint.py", line 63, in pformat
return PrettyPrinter(indent=indent, width=width,
depth=depth).pformat(object)
File "/usr/lib64/python2.7/pprint.py", line 122, in pformat
self._format(object, sio, 0, 0, {}, 0)
File "/usr/lib64/python2.7/pprint.py", line 140, in _format
rep = self._repr(object, context, level - 1)
File "/usr/lib64/python2.7/pprint.py", line 226, in _repr
self._depth, level)
File "/usr/lib64/python2.7/pprint.py", line 238, in format
return _safe_repr(object, context, maxlevels, level)
File "/usr/lib64/python2.7/pprint.py", line 282, in _safe_repr
vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level)
File "/usr/lib64/python2.7/pprint.py", line 323, in _safe_repr
rep = repr(object)
File "/usr/lib/python2.7/site-packages/django/db/models/base.py", line
423, in __repr__
u = six.text_type(self)
File "/home/ed/git/yocto/poky/bitbake/lib/toaster/orm/models.py", line
552, in __unicode__
return "%d(%d) %s:%s" % (self.pk, self.build.pk, self.recipe.name,
self.task_name)
File
"/usr/lib/python2.7/site-packages/django/db/models/fields/related.py",
line 305, in __get__
val = self.field.get_local_related_value(instance)
File
"/usr/lib/python2.7/site-packages/django/db/models/fields/related.py",
line 997, in get_local_related_value
return self.get_instance_value_for_fields(instance,
self.local_related_fields)
File
"/usr/lib/python2.7/site-packages/django/db/models/fields/related.py",
line 1012, in get_instance_value_for_fields
ret.append(getattr(instance, field.attname))
AttributeError: 'Task' object has no attribute 'recipe_id'
I also noticed that progress bar for commandline builds is not shown.
Probably it's caused by above tracebacks.
I removed this change from my branch. If you want to reproduce this
you can get my branch and re-apply it.
Regards,
Ed
On Tue, Oct 06, 2015 at 07:03:40PM +0100, Michael Wood wrote:
> Make sure we associate build data with the built recipe rather than
> toaster's configuration copy of the recipe.
>
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
> bitbake/lib/bb/ui/buildinfohelper.py | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
> index 793418a..9195584 100644
> --- a/bitbake/lib/bb/ui/buildinfohelper.py
> +++ b/bitbake/lib/bb/ui/buildinfohelper.py
> @@ -285,6 +285,7 @@ class ORMWrapper(object):
>
> update_recipe_obj(recipe)
>
> + built_recipe = None
> # Create a copy of the recipe for historical puposes and update it
> for built_layer in self.layer_version_built:
> if built_layer.layer == recipe_information['layer_version'].layer:
> @@ -300,7 +301,7 @@ class ORMWrapper(object):
> if created and must_exist:
> raise NotExisting("Recipe object created when expected to exist", recipe_information)
>
> - return recipe
> + return built_recipe
>
> def get_update_layer_version_object(self, build_obj, layer_obj, layer_version_information):
> if isinstance(layer_obj, Layer_Version):
> --
> 2.1.4
>
> --
> _______________________________________________
> toaster mailing list
> toaster at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/toaster
--
--
Regards,
Ed
More information about the toaster
mailing list