From 1468761c152fd4470983daf12c395d6604e2091b Mon Sep 17 00:00:00 2001 From: Erik Peterson Date: Sat, 9 Nov 2019 07:05:45 -0800 Subject: [PATCH] Don't start heartbeat until _writer is set (#4062) (#4323) --- CHANGES/4062.bugfix | 1 + CONTRIBUTORS.txt | 1 + aiohttp/web_ws.py | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 CHANGES/4062.bugfix diff --git a/CHANGES/4062.bugfix b/CHANGES/4062.bugfix new file mode 100644 index 00000000000..6cc292b6330 --- /dev/null +++ b/CHANGES/4062.bugfix @@ -0,0 +1 @@ +Don't start heartbeat until _writer is set diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index c845df4c83b..bc08a3f5636 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -89,6 +89,7 @@ Elizabeth Leddy Enrique Saez Eric Sheng Erich Healy +Erik Peterson Eugene Chernyshov Eugene Naydenov Eugene Nikolaiev diff --git a/aiohttp/web_ws.py b/aiohttp/web_ws.py index 4c5e7ca5529..d1441d13009 100644 --- a/aiohttp/web_ws.py +++ b/aiohttp/web_ws.py @@ -205,8 +205,6 @@ def _pre_start(self, request: BaseRequest) -> Tuple[str, WebSocketWriter]: headers, protocol, compress, notakeover = self._handshake( request) - self._reset_heartbeat() - self.set_status(101) self.headers.update(headers) self.force_close() @@ -224,6 +222,9 @@ def _post_start(self, request: BaseRequest, protocol: str, writer: WebSocketWriter) -> None: self._ws_protocol = protocol self._writer = writer + + self._reset_heartbeat() + loop = self._loop assert loop is not None self._reader = FlowControlDataQueue(