diff options
author | Ed Bartosh <ed.bartosh@linux.intel.com> | 2016-06-10 12:34:12 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-15 08:35:06 +0100 |
commit | aa6894a4369dbbd032a98bfe43b285111261efa9 (patch) | |
tree | 2fe0bb1b09d1fe1551899bfdbf324c75370fac45 | |
parent | eb634f9e13ade09b4fc7d69801f4d9e21ef03db1 (diff) | |
download | openembedded-core-contrib-aa6894a4369dbbd032a98bfe43b285111261efa9.tar.gz |
bitbake: toaster: fix wrong usage of print_exc and format_exc
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() < <Exception type>()
As these APIs are usually used in except block of handling another
exception this can cause hard to find and debug bugs.
(Bitbake rev: c5a48931ac8db9e56f978c50861c19d0d0c808e3)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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 2407e1bbcc..8cdc81311f 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 80782ef923..a70377012b 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 bed665196e..d01386acfa 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 caad2afe81..61737c7979 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 5ceeb6be3e..02548761f0 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']) |