diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2017-12-14 21:25:24 -0500 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2017-12-20 13:02:36 +0000 |
commit | 7a790272553a6f6f1e49cdaa110b40dacb86820e (patch) | |
tree | 84c4394447446481462c9222054756ab2c267491 | |
parent | 3fe5e43f018cc08cd797d378f807fcfd5aa52c04 (diff) | |
download | phosphor-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.py | 10 |
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] |