From 456a92e9c3c499e581a0af9390014e4ae71d9fb1 Mon Sep 17 00:00:00 2001 From: Min RK Date: Thu, 1 Aug 2019 13:51:12 +0200 Subject: [PATCH] iostream: resolve reads that may be completed while closing fixes issue that a read may fail with StreamClosedError if stream is closed mid-read --- tornado/iostream.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tornado/iostream.py b/tornado/iostream.py index ee305922d..37aeb94f2 100644 --- a/tornado/iostream.py +++ b/tornado/iostream.py @@ -609,6 +609,11 @@ class BaseIOStream(object): if self._read_until_close: self._read_until_close = False self._finish_read(self._read_buffer_size, False) + elif self._read_future is not None: + # resolve reads that are pending and ready to complete + pos = self._find_read_pos() + if pos is not None: + self._read_from_buffer(pos) if self._state is not None: self.io_loop.remove_handler(self.fileno()) self._state = None -- 2.47.2