summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2017-12-14 21:25:24 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-12-20 13:02:36 +0000
commit7a790272553a6f6f1e49cdaa110b40dacb86820e (patch)
tree84c4394447446481462c9222054756ab2c267491
parent3fe5e43f018cc08cd797d378f807fcfd5aa52c04 (diff)
downloadphosphor-objmgr-7a790272553a6f6f1e49cdaa110b40dacb86820e.tar.gz
phosphor-objmgr-7a790272553a6f6f1e49cdaa110b40dacb86820e.zip
server: Log additional information for discovery
discovery_error is called from both exception and normal execution contexts. In exception context print_exception prints the exception class and message. Print the exception class and message when invoked in normal context. Resolves: openbmc/openbmc#2718 Change-Id: Ia6ab9c9d663161028f47e17af2f73bfe801af399 Signed-off-by: Brad Bishop <bradleyb@@fuzziesquirrel.com>
-rw-r--r--obmc/mapper/server.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/obmc/mapper/server.py b/obmc/mapper/server.py
index de5d65d..d18c609 100644
--- a/obmc/mapper/server.py
+++ b/obmc/mapper/server.py
@@ -270,11 +270,19 @@ class ObjectMapper(dbus.service.Object):
we were attempting to introspect.'''
if owner in self.defer_signals:
+
+ # Safe to add a reference to the traceback here,
+ # since it cannot contain the discovery_error frame.
+ exctype, value, tb = sys.exc_info()
sys.stderr.write(
'{} discovery failure on {}\n'.format(
self.bus_map.get(owner, owner),
path))
- traceback.print_exception(*sys.exc_info(), file=sys.stderr)
+ if tb:
+ traceback.print_exception(exctype, value, tb, file=sys.stderr)
+ else:
+ sys.stderr.write('{}: {}\n'.format(e.__class__.__name__, e))
+
del self.defer_signals[owner]
del self.bus_map[owner]
OpenPOWER on IntegriCloud