From: Juraj Marcin Date: Mon, 3 Nov 2025 18:32:50 +0000 (+0100) Subject: migration: Flush migration channel after sending data of CMD_PACKAGED X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1529ec8f5fed0fdeb686c3f235f1b87ff116512e;p=thirdparty%2Fqemu.git migration: Flush migration channel after sending data of CMD_PACKAGED If the length of the data sent after CMD_PACKAGED is just right, and there is not much data to send afterward, it is possible part of the CMD_PACKAGED payload will get left behind in the sending buffer. This causes the destination side to hang while it tries to load the whole package and initiate postcopy. Signed-off-by: Juraj Marcin Link: https://lore.kernel.org/r/20251103183301.3840862-2-jmarcin@redhat.com Signed-off-by: Peter Xu --- diff --git a/migration/savevm.c b/migration/savevm.c index 232cae090b..fa017378db 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1142,6 +1142,7 @@ int qemu_savevm_send_packaged(QEMUFile *f, const uint8_t *buf, size_t len) qemu_savevm_command_send(f, MIG_CMD_PACKAGED, 4, (uint8_t *)&tmp); qemu_put_buffer(f, buf, len); + qemu_fflush(f); return 0; }