summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-12 08:05:32 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-13 13:41:32 +0100
commita46d485856f25df569ca964e50640efa5919aed9 (patch)
tree535822382bb8da8bbbc37ffecead275bd7dc7138
parentca824a976a131d0955f61cff3df9711efd10de63 (diff)
downloadpoky-a46d485856f25df569ca964e50640efa5919aed9.tar.gz
bitbake: 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. (Bitbake rev: d7db75020ed727677afbad07a90fb3eac0bf2c45) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/event.py3
-rw-r--r--bitbake/lib/bb/msg.py5
2 files changed, 5 insertions, 3 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 5a03a31f43..29b14f6c32 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -610,8 +610,9 @@ class LogHandler(logging.Handler):
610 if hasattr(tb, 'tb_next'): 610 if hasattr(tb, 'tb_next'):
611 tb = list(bb.exceptions.extract_traceback(tb, context=3)) 611 tb = list(bb.exceptions.extract_traceback(tb, context=3))
612 # Need to turn the value into something the logging system can pickle 612 # Need to turn the value into something the logging system can pickle
613 value = str(value)
614 record.bb_exc_info = (etype, value, tb) 613 record.bb_exc_info = (etype, value, tb)
614 record.bb_exc_formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
615 value = str(value)
615 record.exc_info = None 616 record.exc_info = None
616 fire(record, None) 617 fire(record, None)
617 618
diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py
index 786b5aef40..6fdd1f52a0 100644
--- a/bitbake/lib/bb/msg.py
+++ b/bitbake/lib/bb/msg.py
@@ -90,8 +90,9 @@ class BBLogFormatter(logging.Formatter):
90 if self.color_enabled: 90 if self.color_enabled:
91 record = self.colorize(record) 91 record = self.colorize(record)
92 msg = logging.Formatter.format(self, record) 92 msg = logging.Formatter.format(self, record)
93 93 if hasattr(record, 'bb_exc_formatted'):
94 if hasattr(record, 'bb_exc_info'): 94 msg += '\n' + ''.join(record.bb_exc_formatted)
95 elif hasattr(record, 'bb_exc_info'):
95 etype, value, tb = record.bb_exc_info 96 etype, value, tb = record.bb_exc_info
96 formatted = bb.exceptions.format_exception(etype, value, tb, limit=5) 97 formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
97 msg += '\n' + ''.join(formatted) 98 msg += '\n' + ''.join(formatted)