diff options
-rw-r--r-- | bitbake/lib/bb/ui/buildinfohelper.py | 12 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/toasterui.py | 8 |
2 files changed, 16 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index cf8c444fdf..b511abe7ad 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py | |||
@@ -33,6 +33,7 @@ from toaster.orm.models import Task_Dependency, Package_Dependency | |||
33 | from toaster.orm.models import Recipe_Dependency | 33 | from toaster.orm.models import Recipe_Dependency |
34 | from bb.msg import BBLogFormatter as format | 34 | from bb.msg import BBLogFormatter as format |
35 | from django.db import models | 35 | from django.db import models |
36 | from pprint import pformat | ||
36 | import logging | 37 | import logging |
37 | 38 | ||
38 | from django.db import transaction, connection | 39 | from django.db import transaction, connection |
@@ -282,7 +283,6 @@ class ORMWrapper(object): | |||
282 | # we might have a race condition here, as the project layers may change between the build trigger and the actual build execution | 283 | # we might have a race condition here, as the project layers may change between the build trigger and the actual build execution |
283 | # but we can only match on the layer name, so the worst thing can happen is a mis-identification of the layer, not a total failure | 284 | # but we can only match on the layer name, so the worst thing can happen is a mis-identification of the layer, not a total failure |
284 | 285 | ||
285 | from pprint import pformat | ||
286 | # note that this is different | 286 | # note that this is different |
287 | buildrequest = BuildRequest.objects.get(pk = br_id) | 287 | buildrequest = BuildRequest.objects.get(pk = br_id) |
288 | for brl in buildrequest.brlayer_set.all(): | 288 | for brl in buildrequest.brlayer_set.all(): |
@@ -467,7 +467,7 @@ class ORMWrapper(object): | |||
467 | Package_Dependency.objects.bulk_create(packagedeps_objs) | 467 | Package_Dependency.objects.bulk_create(packagedeps_objs) |
468 | 468 | ||
469 | if (len(errormsg) > 0): | 469 | if (len(errormsg) > 0): |
470 | raise Exception(errormsg) | 470 | logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s" % errormsg) |
471 | 471 | ||
472 | def save_target_image_file_information(self, target_obj, file_name, file_size): | 472 | def save_target_image_file_information(self, target_obj, file_name, file_size): |
473 | target_image_file = Target_Image_File.objects.create( target = target_obj, | 473 | target_image_file = Target_Image_File.objects.create( target = target_obj, |
@@ -885,9 +885,13 @@ class BuildInfoHelper(object): | |||
885 | assert localfilepath.startswith("/") | 885 | assert localfilepath.startswith("/") |
886 | 886 | ||
887 | recipe_information = self._get_recipe_information_from_taskfile(taskfile) | 887 | recipe_information = self._get_recipe_information_from_taskfile(taskfile) |
888 | recipe_object = Recipe.objects.get(layer_version = recipe_information['layer_version'], | 888 | try: |
889 | recipe_object = Recipe.objects.get(layer_version = recipe_information['layer_version'], | ||
889 | file_path__endswith = recipe_information['file_path'], | 890 | file_path__endswith = recipe_information['file_path'], |
890 | name = recipename) | 891 | name = recipename) |
892 | except Recipe.DoesNotExist: | ||
893 | logger.error("Could not find recipe for recipe_information %s name %s" % (pformat(recipe_information), name)) | ||
894 | raise | ||
891 | 895 | ||
892 | task_information = {} | 896 | task_information = {} |
893 | task_information['build'] = self.internal_state['build'] | 897 | task_information['build'] = self.internal_state['build'] |
@@ -1127,7 +1131,7 @@ class BuildInfoHelper(object): | |||
1127 | Task_Dependency.objects.bulk_create(taskdeps_objects) | 1131 | Task_Dependency.objects.bulk_create(taskdeps_objects) |
1128 | 1132 | ||
1129 | if (len(errormsg) > 0): | 1133 | if (len(errormsg) > 0): |
1130 | raise Exception(errormsg) | 1134 | logger.warn("buildinfohelper: dependency info not identify recipes: \n%s" % errormsg) |
1131 | 1135 | ||
1132 | 1136 | ||
1133 | def store_build_package_information(self, event): | 1137 | def store_build_package_information(self, event): |
diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py index df9f362284..db119cea67 100644 --- a/bitbake/lib/bb/ui/toasterui.py +++ b/bitbake/lib/bb/ui/toasterui.py | |||
@@ -327,9 +327,17 @@ def main(server, eventHandler, params ): | |||
327 | except Exception as e: | 327 | except Exception as e: |
328 | # print errors to log | 328 | # print errors to log |
329 | import traceback | 329 | import traceback |
330 | from pprint import pformat | ||
330 | exception_data = traceback.format_exc() | 331 | exception_data = traceback.format_exc() |
331 | logger.error("%s\n%s" % (e, exception_data)) | 332 | logger.error("%s\n%s" % (e, exception_data)) |
332 | 333 | ||
334 | exc_type, exc_value, tb = sys.exc_info() | ||
335 | if tb is not None: | ||
336 | curr = tb | ||
337 | while curr is not None: | ||
338 | logger.warn("Error data dump %s\n%s\n" % (traceback.format_tb(curr,1), pformat(curr.tb_frame.f_locals))) | ||
339 | curr = curr.tb_next | ||
340 | |||
333 | # save them to database, if possible; if it fails, we already logged to console. | 341 | # save them to database, if possible; if it fails, we already logged to console. |
334 | try: | 342 | try: |
335 | buildinfohelper.store_log_exception("%s\n%s" % (str(e), exception_data)) | 343 | buildinfohelper.store_log_exception("%s\n%s" % (str(e), exception_data)) |