summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Denemark <jdenemar@redhat.com>2012-10-17 14:08:17 +0200
committerDoug Goldstein <cardoe@cardoe.com>2012-10-17 19:04:20 -0500
commitacfd24f92afe4f49307a8fda9238670ce4c9e8dd (patch)
tree43e179f3136f7602b42466138e5fb612d0de63d4
parentstorage: lvm: lvcreate fails with allocation=0, don't do that (diff)
downloadlibvirt-acfd24f92afe4f49307a8fda9238670ce4c9e8dd.tar.gz
libvirt-acfd24f92afe4f49307a8fda9238670ce4c9e8dd.tar.bz2
libvirt-acfd24f92afe4f49307a8fda9238670ce4c9e8dd.zip
qemu: Clear async job when p2p migration fails early
When p2p migration fails early because qemuMigrationIsAllowed or qemuMigrationIsSafe say migration should be cancelled, we fail to clear the migration-out async job. As a result of that, further APIs called for the same domain may fail with Timed out during operation: cannot acquire state change lock. Reported by Guido Winkelmann.
-rw-r--r--src/qemu/qemu_migration.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 8e8587573..1da353c3a 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2624,10 +2624,10 @@ qemuMigrationPerformJob(struct qemud_driver *driver,
}
if (!qemuMigrationIsAllowed(driver, vm, NULL))
- goto cleanup;
+ goto endjob;
if (!(flags & VIR_MIGRATE_UNSAFE) && !qemuMigrationIsSafe(vm->def))
- goto cleanup;
+ goto endjob;
resume = virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING;