summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_messaging/rpc/server.py12
-rw-r--r--releasenotes/notes/no-log-if-ignore-errors-e2223b8a646b4c40.yaml5
2 files changed, 14 insertions, 3 deletions
diff --git a/oslo_messaging/rpc/server.py b/oslo_messaging/rpc/server.py
index b16d77f..d981b88 100644
--- a/oslo_messaging/rpc/server.py
+++ b/oslo_messaging/rpc/server.py
@@ -164,12 +164,18 @@ class RPCServer(msg_server.MessageHandlingServer):
try:
res = self.dispatcher.dispatch(message)
except rpc_dispatcher.ExpectedException as e:
+ # current sys.exc_info() content can be overridden
+ # by another exception raised by a log handler during
+ # LOG.debug(). So keep a copy and delete it later.
failure = e.exc_info
LOG.debug(u'Expected exception during message handling (%s)', e)
+ except rpc_dispatcher.NoSuchMethod as e:
+ failure = sys.exc_info()
+ if e.method.endswith('_ignore_errors'):
+ LOG.debug('Method %s not found', e.method)
+ else:
+ LOG.exception('Exception during message handling')
except Exception:
- # current sys.exc_info() content can be overridden
- # by another exception raised by a log handler during
- # LOG.exception(). So keep a copy and delete it later.
failure = sys.exc_info()
LOG.exception('Exception during message handling')
diff --git a/releasenotes/notes/no-log-if-ignore-errors-e2223b8a646b4c40.yaml b/releasenotes/notes/no-log-if-ignore-errors-e2223b8a646b4c40.yaml
new file mode 100644
index 0000000..84365cc
--- /dev/null
+++ b/releasenotes/notes/no-log-if-ignore-errors-e2223b8a646b4c40.yaml
@@ -0,0 +1,5 @@
+other:
+ - |
+ NoSuchMethod exception will not be logged for special non-existing methods
+ which names end with '_ignore_errors'. Such methods might be used
+ as health probes for openstack services.