Merge "Always delete exc_info tuple, even if reply fails"

This commit is contained in:
Jenkins 2016-03-10 12:44:19 +00:00 committed by Gerrit Code Review
commit 955088bc19

@ -145,13 +145,15 @@ class RPCDispatcher(dispatcher.DispatcherBase):
# by another exception raise by a log handler during # by another exception raise by a log handler during
# LOG.exception(). So keep a copy and delete it later. # LOG.exception(). So keep a copy and delete it later.
exc_info = sys.exc_info() exc_info = sys.exc_info()
LOG.error(_LE('Exception during message handling: %s'), e, try:
exc_info=exc_info) LOG.error(_LE('Exception during message handling: %s'), e,
incoming.reply(failure=exc_info) exc_info=exc_info)
# NOTE(dhellmann): Remove circular object reference incoming.reply(failure=exc_info)
# between the current stack frame and the traceback in finally:
# exc_info. # NOTE(dhellmann): Remove circular object reference
del exc_info # between the current stack frame and the traceback in
# exc_info.
del exc_info
def _dispatch(self, ctxt, message): def _dispatch(self, ctxt, message):
"""Dispatch an RPC message to the appropriate endpoint method. """Dispatch an RPC message to the appropriate endpoint method.