diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-08-20 18:21:10 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-08-20 18:21:10 +0100 |
commit | be6527325a829e7d5e4540d7a1983a6e6fda2c0f (patch) | |
tree | 5a0e45b4a35a07978b21d95c0cb740c66b81992f /synapse/http | |
parent | Robustness fix for logcontext filter (diff) | |
download | synapse-be6527325a829e7d5e4540d7a1983a6e6fda2c0f.tar.xz |
Fix exceptions when a connection is closed before we read the headers
This fixes bugs introduced in #3700, by making sure that we behave sanely when an incoming connection is closed before the headers are read.
Diffstat (limited to 'synapse/http')
-rw-r--r-- | synapse/http/site.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/http/site.py b/synapse/http/site.py index ad2a98468e..88ed3714f9 100644 --- a/synapse/http/site.py +++ b/synapse/http/site.py @@ -182,7 +182,7 @@ class SynapseRequest(Request): # the client disconnects. with PreserveLoggingContext(self.logcontext): logger.warn( - "Error processing request: %s %s", reason.type, reason.value, + "Error processing request %r: %s %s", self, reason.type, reason.value, ) if not self._is_processing: @@ -219,6 +219,12 @@ class SynapseRequest(Request): """Log the completion of this request and update the metrics """ + if self.logcontext is None: + # this can happen if the connection closed before we read the + # headers (so render was never called). In that case we'll already + # have logged a warning, so just bail out. + return + usage = self.logcontext.get_resource_usage() if self._processing_finished_time is None: |