[pve-devel] [PATCH qemu-server 2/3] migration: handle 'device' migration status newly present in QEMU 10.0+
Fiona Ebner
f.ebner at proxmox.com
Mon Jul 28 16:30:32 CEST 2025
The QMP reference docs describe the 'device' status as:
> During device serialisation (also known as switchover phase). Before
> 9.2, this is only used when (1) in precopy, and (2) when
> pre-switchover capability is enabled. After 10.0, this state will
> always be present for every migration procedure as the switchover
> phase.
Since Proxmox VE did not use the pre-switchover capability, it has not
been observed before QEMU 10.0. The state is still only reached during
block device inactivation, but it will be reached.
Reported in the community forum:
https://forum.proxmox.com/threads/168619/post-786535
Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
src/PVE/QemuMigrate.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/PVE/QemuMigrate.pm b/src/PVE/QemuMigrate.pm
index edaf2f25..5b854292 100644
--- a/src/PVE/QemuMigrate.pm
+++ b/src/PVE/QemuMigrate.pm
@@ -1354,7 +1354,7 @@ sub phase2 {
next;
}
- if (!defined($status) || $status !~ m/^(active|cancelled|completed|failed)$/im) {
+ if (!defined($status) || $status !~ m/^(active|cancelled|completed|device|failed)$/im) {
die $merr if $merr;
die "unable to parse migration status '$status' - aborting\n";
}
@@ -1394,7 +1394,7 @@ sub phase2 {
die "aborting\n";
}
- if ($status ne 'active') {
+ if ($status ne 'active' && $status ne 'device') {
$self->log('info', "migration status: $status");
last;
}
--
2.47.2
More information about the pve-devel
mailing list