[oe-commits] [bitbake] 02/04: event/msg: Pass formatted exceptions

git at git.openembedded.org git at git.openembedded.org
Thu May 12 22:02:58 UTC 2016


rpurdie pushed a commit to branch master-next
in repository bitbake.

commit d7db75020ed727677afbad07a90fb3eac0bf2c45
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Thu May 12 08:05:32 2016 +0100

    event/msg: Pass formatted exceptions
    
    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 at linuxfoundation.org>
---
 lib/bb/event.py | 3 ++-
 lib/bb/msg.py   | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/bb/event.py b/lib/bb/event.py
index 5a03a31..29b14f6 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -610,8 +610,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 786b5ae..6fdd1f5 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)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list