All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] event/msg: Pass formatted exceptions
@ 2016-05-12  9:56 Richard Purdie
  0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2016-05-12  9:56 UTC (permalink / raw)
  To: bitbake-devel

python3 can't cope with the previous approach we were using to pass
exceptions through the RPC. Avoid this by creating a formatted exception
on the sender side.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

diff --git a/lib/bb/event.py b/lib/bb/event.py
index 3955f9d..6fb3712 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -607,8 +607,9 @@ class LogHandler(logging.Handler):
             if hasattr(tb, 'tb_next'):
                 tb = list(bb.exceptions.extract_traceback(tb, context=3))
             # Need to turn the value into something the logging system can pickle
-            value = str(value)
             record.bb_exc_info = (etype, value, tb)
+            record.bb_exc_formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
+            value = str(value)
             record.exc_info = None
         fire(record, None)
 
diff --git a/lib/bb/msg.py b/lib/bb/msg.py
index e3ced27..8c3ab47 100644
--- a/lib/bb/msg.py
+++ b/lib/bb/msg.py
@@ -90,8 +90,9 @@ class BBLogFormatter(logging.Formatter):
             if self.color_enabled:
                 record = self.colorize(record)
             msg = logging.Formatter.format(self, record)
-
-        if hasattr(record, 'bb_exc_info'):
+        if hasattr(record, 'bb_exc_formatted'):
+            msg += '\n' + ''.join(record.bb_exc_formatted)
+        elif hasattr(record, 'bb_exc_info'):
             etype, value, tb = record.bb_exc_info
             formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
             msg += '\n' + ''.join(formatted)



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-12  9:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-12  9:56 [PATCH] event/msg: Pass formatted exceptions Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.