diff options
author | Erik Johnston <erik@matrix.org> | 2020-05-22 11:39:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-22 11:39:20 +0100 |
commit | 547e4dd83e7d70c30ce8b40578d0750fc10373fa (patch) | |
tree | 84fe85f71ea6e9c5e0794a4659eb8b10ee58733f /synapse/app | |
parent | synapse.metrics: implement detailed memory usage reporting on PyPy (#7536) (diff) | |
download | synapse-547e4dd83e7d70c30ce8b40578d0750fc10373fa.tar.xz |
Fix exception reporting due to HTTP request errors. (#7556)
These are business as usual errors, rather than stuff we want to log at error.
Diffstat (limited to 'synapse/app')
-rw-r--r-- | synapse/app/generic_worker.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py index d751c9772b..a45c876213 100644 --- a/synapse/app/generic_worker.py +++ b/synapse/app/generic_worker.py @@ -26,7 +26,7 @@ from twisted.web.resource import NoResource import synapse import synapse.events -from synapse.api.errors import SynapseError +from synapse.api.errors import HttpResponseException, RequestSendFailed, SynapseError from synapse.api.urls import ( CLIENT_API_PREFIX, FEDERATION_PREFIX, @@ -202,9 +202,14 @@ class KeyUploadServlet(RestServlet): # is there. auth_headers = request.requestHeaders.getRawHeaders(b"Authorization", []) headers = {"Authorization": auth_headers} - result = await self.http_client.post_json_get_json( - self.main_uri + request.uri.decode("ascii"), body, headers=headers - ) + try: + result = await self.http_client.post_json_get_json( + self.main_uri + request.uri.decode("ascii"), body, headers=headers + ) + except HttpResponseException as e: + raise e.to_synapse() from e + except RequestSendFailed as e: + raise SynapseError(502, "Failed to talk to master") from e return 200, result else: |