diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2021-10-07 12:37:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-07 10:37:10 +0000 |
commit | 52aefd50860f9b44f48a9b465d42f26faa4eb84f (patch) | |
tree | ac479ca91358e4b0854af520aedcefa4530cbaa1 | |
parent | `disallow-untyped-defs` for `synapse.state` (#11004) (diff) | |
download | synapse-52aefd50860f9b44f48a9b465d42f26faa4eb84f.tar.xz |
Catch AttributeErrors when calling registerProducer (#10995)
Looks like the wrong exception type was caught in #10932.
-rw-r--r-- | changelog.d/10995.bugfix | 1 | ||||
-rw-r--r-- | synapse/http/server.py | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/changelog.d/10995.bugfix b/changelog.d/10995.bugfix new file mode 100644 index 0000000000..3eef96f3db --- /dev/null +++ b/changelog.d/10995.bugfix @@ -0,0 +1 @@ +Correct a bugfix introduced in Synapse v1.44.0 that wouldn't catch every error of the connection breaks before a response could be written to it. diff --git a/synapse/http/server.py b/synapse/http/server.py index 0df1bfbeef..897ba5e453 100644 --- a/synapse/http/server.py +++ b/synapse/http/server.py @@ -563,7 +563,10 @@ class _ByteProducer: try: self._request.registerProducer(self, True) - except RuntimeError as e: + except AttributeError as e: + # Calling self._request.registerProducer might raise an AttributeError since + # the underlying Twisted code calls self._request.channel.registerProducer, + # however self._request.channel will be None if the connection was lost. logger.info("Connection disconnected before response was written: %r", e) # We drop our references to data we'll not use. |