diff --git a/uvicorn/protocols/http/h11_impl.py b/uvicorn/protocols/http/h11_impl.py index 905de3de14..5fff70bb7d 100644 --- a/uvicorn/protocols/http/h11_impl.py +++ b/uvicorn/protocols/http/h11_impl.py @@ -145,6 +145,7 @@ def connection_lost(self, exc: Optional[Exception]) -> None: self.flow.resume_writing() if exc is None: self.transport.close() + self._unset_keepalive_if_required() def eof_received(self) -> None: pass diff --git a/uvicorn/protocols/http/httptools_impl.py b/uvicorn/protocols/http/httptools_impl.py index 715b9e2a02..f018c59af3 100644 --- a/uvicorn/protocols/http/httptools_impl.py +++ b/uvicorn/protocols/http/httptools_impl.py @@ -137,6 +137,9 @@ def connection_lost(self, exc: Optional[Exception]) -> None: self.flow.resume_writing() if exc is None: self.transport.close() + self._unset_keepalive_if_required() + + self.parser = None def eof_received(self) -> None: pass