Message ID | 20231006195243.3131140-3-jsnow@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Python: Enable python3.12 support | expand |
On 06.10.23 22:52, John Snow wrote: > This patch is a backport from > https://gitlab.com/qemu-project/python-qemu-qmp/-/commit/e03a3334b6a477beb09b293708632f2c06fe9f61 > > According to Guido in https://github.com/python/cpython/issues/104344 , > this call was never meant to wait for the server to shut down - that is > handled synchronously - but instead, this waits for all connections to > close. Or, it would have, if it wasn't broken since it was introduced. > > 3.12 fixes the bug, which now causes a hang in our code. The fix is just > to remove the wait. > > Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
diff --git a/python/qemu/qmp/protocol.py b/python/qemu/qmp/protocol.py index 753182131f..a4ffdfad51 100644 --- a/python/qemu/qmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -495,7 +495,6 @@ async def _stop_server(self) -> None: try: self.logger.debug("Stopping server.") self._server.close() - await self._server.wait_closed() self.logger.debug("Server stopped.") finally: self._server = None
This patch is a backport from https://gitlab.com/qemu-project/python-qemu-qmp/-/commit/e03a3334b6a477beb09b293708632f2c06fe9f61 According to Guido in https://github.com/python/cpython/issues/104344 , this call was never meant to wait for the server to shut down - that is handled synchronously - but instead, this waits for all connections to close. Or, it would have, if it wasn't broken since it was introduced. 3.12 fixes the bug, which now causes a hang in our code. The fix is just to remove the wait. Signed-off-by: John Snow <jsnow@redhat.com> --- python/qemu/qmp/protocol.py | 1 - 1 file changed, 1 deletion(-)