Merge pull request #3925 from matrix-org/erikj/fix_producers_unregistered

Fix spurious exceptions when client closes conncetion
This commit is contained in:
Richard van der Hoff 2018-09-25 11:52:06 +01:00 committed by GitHub
commit 94f7befc31
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 14 deletions

1
changelog.d/3925.misc Normal file
View File

@ -0,0 +1 @@
Fix spurious exceptions when remote http client closes conncetion

View File

@ -84,6 +84,17 @@ def wrap_json_request_handler(h):
logger.info( logger.info(
"%s SynapseError: %s - %s", request, code, e.msg "%s SynapseError: %s - %s", request, code, e.msg
) )
# Only respond with an error response if we haven't already started
# writing, otherwise lets just kill the connection
if request.startedWriting:
if request.transport:
try:
request.transport.abortConnection()
except Exception:
# abortConnection throws if the connection is already closed
pass
else:
respond_with_json( respond_with_json(
request, code, e.error_dict(), send_cors=True, request, code, e.error_dict(), send_cors=True,
pretty_print=_request_user_agent_is_curl(request), pretty_print=_request_user_agent_is_curl(request),
@ -100,6 +111,16 @@ def wrap_json_request_handler(h):
request, request,
f.getTraceback().rstrip(), f.getTraceback().rstrip(),
) )
# Only respond with an error response if we haven't already started
# writing, otherwise lets just kill the connection
if request.startedWriting:
if request.transport:
try:
request.transport.abortConnection()
except Exception:
# abortConnection throws if the connection is already closed
pass
else:
respond_with_json( respond_with_json(
request, request,
500, 500,