From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id 2A279E00CD9; Fri, 10 Jun 2016 02:34:30 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on yocto-www.yoctoproject.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-HAM-Report: * -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high * trust * [134.134.136.20 listed in list.dnswl.org] * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id F33CBE00CC0 for ; Fri, 10 Jun 2016 02:34:26 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP; 10 Jun 2016 02:34:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,449,1459839600"; d="scan'208";a="825411946" Received: from linux.intel.com ([10.23.219.25]) by orsmga003.jf.intel.com with ESMTP; 10 Jun 2016 02:34:26 -0700 Received: from vmed.fi.intel.com (vmed.fi.intel.com [10.237.72.68]) by linux.intel.com (Postfix) with ESMTP id 775386A4006; Fri, 10 Jun 2016 03:21:51 -0700 (PDT) From: Ed Bartosh To: toaster@yoctoproject.org Date: Fri, 10 Jun 2016 12:34:12 +0300 Message-Id: <1465551252-10239-1-git-send-email-ed.bartosh@linux.intel.com> X-Mailer: git-send-email 2.1.4 Subject: [PATCH] toaster: fix wrong usage of print_exc and format_exc X-BeenThere: toaster@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Web based interface for BitBake List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jun 2016 09:34:30 -0000 First parameter of traceback.print_exc and traceback.format_exc APIs is a 'limit' - a number of stracktraces to print. Passing exception object to print_exc or format_exc is incorrect, but it works in Python 2 and causes printing only one line of traceback. In Python 3 comparison of integer and exception object throws exception: TypeError: unorderable types: int() < () As these APIs are usually used in except block of handling another exception this can cause hard to find and debug bugs. Signed-off-by: Ed Bartosh --- bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py | 2 +- bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | 4 ++-- bitbake/lib/toaster/contrib/tts/runner.py | 4 ++-- bitbake/lib/toaster/orm/models.py | 2 +- bitbake/lib/toaster/toastergui/views.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py index 2407e1b..8cdc813 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py @@ -118,7 +118,7 @@ class Command(NoArgsCommand): except Exception as e: print("Failure while trying to import the toaster config file %s: %s" %\ (config_file, e)) - traceback.print_exc(e) + traceback.print_exc() return is_changed diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py index 80782ef..a703770 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py @@ -68,7 +68,7 @@ class Command(NoArgsCommand): except Exception as e: logger.error("runbuilds: Error launching build %s" % e) - traceback.print_exc(e) + traceback.print_exc() if "[Errno 111] Connection refused" in str(e): # Connection refused, read toaster_server.out errmsg = bec.readServerLogFile() @@ -78,7 +78,7 @@ class Command(NoArgsCommand): BRError.objects.create(req = br, errtype = str(type(e)), errmsg = errmsg, - traceback = traceback.format_exc(e)) + traceback = traceback.format_exc()) br.state = BuildRequest.REQ_FAILED br.save() bec.be.lock = BuildEnvironment.LOCK_FREE diff --git a/bitbake/lib/toaster/contrib/tts/runner.py b/bitbake/lib/toaster/contrib/tts/runner.py index bed6651..d01386a 100755 --- a/bitbake/lib/toaster/contrib/tts/runner.py +++ b/bitbake/lib/toaster/contrib/tts/runner.py @@ -146,7 +146,7 @@ def execute_tests(dir_under_test, testname): except Exception as exc: import traceback - config.logger.error("Exception while running test. Tracedump: \n%s", traceback.format_exc(exc)) + config.logger.error("Exception while running test. Tracedump: \n%s", traceback.format_exc()) finally: os.chdir(crt_dir) return len(result.failures) @@ -211,7 +211,7 @@ def main(): except ShellCmdException as exc: import traceback - config.logger.error("Error while setting up testing. Traceback: \n%s", traceback.format_exc(exc)) + config.logger.error("Error while setting up testing. Traceback: \n%s", traceback.format_exc()) finally: if need_cleanup and testdir is not None: clean_up(testdir) diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index caad2af..61737c7 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -1217,7 +1217,7 @@ class LayerIndexLayerSource(LayerSource): import traceback if proxy_settings is not None: logger.info("EE: Using proxy %s" % proxy_settings) - logger.warning("EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc(e))) + logger.warning("EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc())) return # update branches; only those that we already have names listed in the diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 9d06000..3e6a392 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py @@ -761,7 +761,7 @@ def _get_dir_entries(build_id, target_id, start): except Exception as e: print("Exception ", e) - traceback.print_exc(e) + traceback.print_exc() # sort by directories first, then by name rsorted = sorted(response, key=lambda entry : entry['name']) -- 2.1.4