The default message recv limit in asyncio is smaller than our needs, so when opening connections we override it. This was done when opening a connection using a socket address, but was missed when using a pre-opened socket file descriptor.
This latent bug was exposed when the QEMUMachine class was enhanced to use socketpair() when no socket address was passed by: commit bd4c0ef409140bd1be393407c04005ac077d4574 Author: Marc-André Lureau <marcandre.lur...@redhat.com> Date: Wed Jan 11 12:01:01 2023 +0400 python/qemu/machine: use socketpair() for QMP by default Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> --- python/qemu/qmp/protocol.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/qemu/qmp/protocol.py b/python/qemu/qmp/protocol.py index 22e60298d2..2bd341a93e 100644 --- a/python/qemu/qmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -307,7 +307,10 @@ async def open_with_socket(self, sock: socket.socket) -> None: :raise StateError: When the `Runstate` is not `IDLE`. """ - self._reader, self._writer = await asyncio.open_connection(sock=sock) + self._reader, self._writer = await asyncio.open_connection( + sock=sock, + limit=self._limit, + ) self._set_state(Runstate.CONNECTING) @upper_half -- 2.39.2