From: Richard Purdie Date: Wed, 9 Dec 2015 12:02:56 +0000 (+0000) Subject: event: Fix subprocess event error traceback failures X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05695424b918fc81b16cbac70d79d8271a0b6045;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git event: Fix subprocess event error traceback failures If subprocess raises a CalledProcessError() error, e.g. from a call like subprocess.check_call("false"), bitbake would try and pass the object over IPC and fail, leading to an unusual error: ('__init__() takes at least 3 arguments (1 given)', , ())% To avoid this, we turn the value into a string which prevents the issues the IPC has trying to deal with the object (for the same reason we deal with tracebacks here too). [YOCTO #8752] Signed-off-by: Richard Purdie --- diff --git a/lib/bb/event.py b/lib/bb/event.py index 366bc418845..ec25ce77fb4 100644 --- a/lib/bb/event.py +++ b/lib/bb/event.py @@ -595,6 +595,8 @@ class LogHandler(logging.Handler): etype, value, tb = record.exc_info 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.exc_info = None fire(record, None)