When destination libvirtd is restarted during migration in Finish phase
just after the point we started guest CPUs, we should not kill the
domain.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_process.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index e067c3f..240aa04 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3307,9 +3307,13 @@ qemuProcessRecoverMigration(virQEMUDriverPtr driver,
case QEMU_MIGRATION_PHASE_FINISH3:
/* migration finished, we started resuming the domain but didn't
- * confirm success or failure yet; killing it seems safest */
- VIR_DEBUG("Killing migrated domain %s", vm->def->name);
- return -1;
+ * confirm success or failure yet; killing it seems safest unless
+ * we already started guest CPUs */
+ if (state != VIR_DOMAIN_RUNNING) {
+ VIR_DEBUG("Killing migrated domain %s", vm->def->name);
+ return -1;
+ }
+ break;
}
} else if (job == QEMU_ASYNC_JOB_MIGRATION_OUT) {
switch (phase) {
--
2.7.0