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.
(cherry picked from commit 837993d845)
This commit is contained in:
Jiri Denemark 2012-10-17 14:08:17 +02:00 committed by Cole Robinson
parent 29a2a91187
commit 77cecd2bc3

View File

@ -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;