Remove some pointless exception handling

The verify_request deferred already returns a suitable SynapseError, so I don't
really know what we expect to achieve by doing more wrapping, other than log
spam.

Fixes #4278.
This commit is contained in:
Richard van der Hoff 2019-05-29 17:21:39 +01:00
parent 099829d5a9
commit 8ea2f756a9
2 changed files with 9 additions and 25 deletions

1
changelog.d/5300.bugfix Normal file
View File

@ -0,0 +1 @@
Fix noisy 'no key for server' logs.

View File

@ -64,13 +64,19 @@ class VerifyKeyRequest(object):
Attributes: Attributes:
server_name(str): The name of the server to verify against. server_name(str): The name of the server to verify against.
key_ids(set[str]): The set of key_ids to that could be used to verify the key_ids(set[str]): The set of key_ids to that could be used to verify the
JSON object JSON object
json_object(dict): The JSON object to verify. json_object(dict): The JSON object to verify.
deferred(Deferred[str, str, nacl.signing.VerifyKey]): deferred(Deferred[str, str, nacl.signing.VerifyKey]):
A deferred (server_name, key_id, verify_key) tuple that resolves when A deferred (server_name, key_id, verify_key) tuple that resolves when
a verify key has been fetched. The deferreds' callbacks are run with no a verify key has been fetched. The deferreds' callbacks are run with no
logcontext. logcontext.
If we are unable to find a key which satisfies the request, the deferred
errbacks with an M_UNAUTHORIZED SynapseError.
""" """
server_name = attr.ib() server_name = attr.ib()
@ -771,31 +777,8 @@ def _handle_key_deferred(verify_request):
SynapseError if there was a problem performing the verification SynapseError if there was a problem performing the verification
""" """
server_name = verify_request.server_name server_name = verify_request.server_name
try: with PreserveLoggingContext():
with PreserveLoggingContext(): _, key_id, verify_key = yield verify_request.deferred
_, key_id, verify_key = yield verify_request.deferred
except KeyLookupError as e:
logger.warn(
"Failed to download keys for %s: %s %s",
server_name,
type(e).__name__,
str(e),
)
raise SynapseError(
502, "Error downloading keys for %s" % (server_name,), Codes.UNAUTHORIZED
)
except Exception as e:
logger.exception(
"Got Exception when downloading keys for %s: %s %s",
server_name,
type(e).__name__,
str(e),
)
raise SynapseError(
401,
"No key for %s with id %s" % (server_name, verify_request.key_ids),
Codes.UNAUTHORIZED,
)
json_object = verify_request.json_object json_object = verify_request.json_object