Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit f48792e

Browse files
committed
Reduce the amount of incredibly spammy stack traces. Expected errors (e.g. SynapseErrors) shouldn't have their full trace logged every time. Don't send responses to disconnected requests.
1 parent 509ce6c commit f48792e

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

synapse/http/server.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,11 @@ def _async_render(self, request):
132132
{"error": "Unrecognized request"}
133133
)
134134
except CodeMessageException as e:
135-
logger.exception(e)
135+
if isinstance(e, SynapseError):
136+
logger.error("%s SynapseError: %s - %s", request, e.code,
137+
e.msg)
138+
else:
139+
logger.exception(e)
136140
self._send_response(
137141
request,
138142
e.code,
@@ -147,6 +151,14 @@ def _async_render(self, request):
147151
)
148152

149153
def _send_response(self, request, code, response_json_object):
154+
# could alternatively use request.notifyFinish() and flip a flag when
155+
# the Deferred fires, but since the flag is RIGHT THERE it seems like
156+
# a waste.
157+
if request._disconnected:
158+
logger.warn(
159+
"Not sending response to request %s, already disconnected.",
160+
request)
161+
return
150162

151163
if not self._request_user_agent_is_curl(request):
152164
json_bytes = encode_canonical_json(response_json_object)

0 commit comments

Comments
 (0)