summary refs log tree commit diff
path: root/synapse/http
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2018-05-03 12:40:11 +0100
committerGitHub <noreply@github.com>2018-05-03 12:40:11 +0100
commit2117f843236088b6dd781dda88ef17713b160031 (patch)
treef995e44af45a51881a0715b55e935295ceddca7c /synapse/http
parentMerge pull request #3178 from matrix-org/rav/fix_request_timeouts (diff)
parentDon't abortConnection() if the transport connection has already closed. (diff)
downloadsynapse-2117f843236088b6dd781dda88ef17713b160031.tar.xz
Merge pull request #3182 from Half-Shot/hs/fix-twisted-shutdown
Fix 'Unhandled Error' logs with Twisted 18.4
Diffstat (limited to 'synapse/http')
-rw-r--r--synapse/http/endpoint.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/synapse/http/endpoint.py b/synapse/http/endpoint.py

index db455e5909..87a482650d 100644 --- a/synapse/http/endpoint.py +++ b/synapse/http/endpoint.py
@@ -115,10 +115,15 @@ class _WrappedConnection(object): if time.time() - self.last_request >= 2.5 * 60: self.abort() # Abort the underlying TLS connection. The abort() method calls - # loseConnection() on the underlying TLS connection which tries to + # loseConnection() on the TLS connection which tries to # shutdown the connection cleanly. We call abortConnection() - # since that will promptly close the underlying TCP connection. - self.transport.abortConnection() + # since that will promptly close the TLS connection. + # + # In Twisted >18.4; the TLS connection will be None if it has closed + # which will make abortConnection() throw. Check that the TLS connection + # is not None before trying to close it. + if self.transport.getHandle() is not None: + self.transport.abortConnection() def request(self, request): self.last_request = time.time()