diff options
author | Erik Johnston <erik@matrix.org> | 2019-02-14 13:58:52 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2019-02-14 14:01:04 +0000 |
commit | 7fc1196a362fc56d11e2652ee5c9699b1198cf40 (patch) | |
tree | fac7a253674cb2039c82bcc2eb58fea8b6bc3881 /synapse/handlers/groups_local.py | |
parent | Merge pull request #4450 from 14mRh4X0r/fix-dependency-message (diff) | |
download | synapse-7fc1196a362fc56d11e2652ee5c9699b1198cf40.tar.xz |
Correctly handle RequestSendFailed exceptions
This mainly reduces the number of exceptions we log.
Diffstat (limited to 'synapse/handlers/groups_local.py')
-rw-r--r-- | synapse/handlers/groups_local.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/synapse/handlers/groups_local.py b/synapse/handlers/groups_local.py index 173315af6c..02c508acec 100644 --- a/synapse/handlers/groups_local.py +++ b/synapse/handlers/groups_local.py @@ -20,7 +20,7 @@ from six import iteritems from twisted.internet import defer -from synapse.api.errors import HttpResponseException, SynapseError +from synapse.api.errors import HttpResponseException, RequestSendFailed, SynapseError from synapse.types import get_domain_from_id logger = logging.getLogger(__name__) @@ -46,13 +46,19 @@ def _create_rerouter(func_name): # when the remote end responds with things like 403 Not # In Group, we can communicate that to the client instead # of a 500. - def h(failure): + def http_response_errback(failure): failure.trap(HttpResponseException) e = failure.value if e.code == 403: raise e.to_synapse_error() return failure - d.addErrback(h) + + def request_failed_errback(failure): + failure.trap(RequestSendFailed) + raise SynapseError(502, "Failed to contact group server") + + d.addErrback(http_response_errback) + d.addErrback(request_failed_errback) return d return f |