On Fri, Oct 02, 2026 at 13:19:07 +0200, Denis V. Lunev wrote:
From: Denis V. Lunev <den@openvz.org>
QEMU 10.2 added a postcopy-device migration state between active and postcopy-active. The source stays in it from the moment it has sent the device state until the destination confirms it has loaded it, and the destination is in it while loading. libvirt does not know the state: the MIGRATION event is dropped with a warning and query-migrate fails with
unexpected migration status in postcopy-device
so virDomainGetJobInfo and virDomainGetJobStats fail for that whole phase. OpenStack nova polls job stats during a live migration and aborts it on that error.
Treat postcopy-device as part of the migrating phase. A failure in it still lets the source resume, which is what QEMU added the state for, so the source keeps waiting for postcopy-active before it reports post-copy.
Signed-off-by: Denis V. Lunev <den@openvz.org> --- src/qemu/qemu_migration.c | 2 ++ src/qemu/qemu_monitor.c | 1 + src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 1 + src/qemu/qemu_process.c | 1 + tests/qemumonitorjsontest.c | 25 +++++++++++++++++++++++++ 6 files changed, 31 insertions(+)
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>