summary refs log tree commit diff stats
path: root/python/qemu/qmp/protocol.py
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2023-10-06 15:52:41 -0400
committerJohn Snow <jsnow@redhat.com>2023-10-11 16:02:34 -0400
commitacf873873ae38e68371b0c53c42d3530636ff94e (patch)
tree15b7c98fc3d452f6746a6a206660ddbb7b18330d /python/qemu/qmp/protocol.py
parentff2e08132f332b6b64d69774dd9a40a2b74fd04c (diff)
downloadfocaccia-qemu-acf873873ae38e68371b0c53c42d3530636ff94e.tar.gz
focaccia-qemu-acf873873ae38e68371b0c53c42d3530636ff94e.zip
python/qmp: remove Server.wait_closed() call for Python 3.12
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>
Message-id: 20231006195243.3131140-3-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'python/qemu/qmp/protocol.py')
-rw-r--r--python/qemu/qmp/protocol.py1
1 files changed, 0 insertions, 1 deletions
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 @@ class AsyncProtocol(Generic[T]):
         try:
             self.logger.debug("Stopping server.")
             self._server.close()
-            await self._server.wait_closed()
             self.logger.debug("Server stopped.")
         finally:
             self._server = None