]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuProcessHandleMigrationStatus: Update migration status more frequently
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Jul 2015 12:15:03 +0000 (14:15 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Jul 2015 13:07:12 +0000 (15:07 +0200)
After Jirka's migration patches libvirt is listening on migration
events from qemu instead of actively polling on the monitor. There is,
however, a little regression (introduced in 6d2edb6a42d0d41). The
problem is, the current status of migration job is updated in
qemuProcessHandleMigrationStatus if and only if migration job was
started. But eventually every asynchronous job may result in
migration. Therefore, since this job is not strictly a
migration job, internal state was not updated and later checks failed:

  virsh # save fedora22 /tmp/fedora22_ble.save
  error: Failed to save domain fedora22 to /tmp/fedora22_ble.save
  error: operation failed: domain save job: is not active

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_process.c

index 2a529f7b3953ac191f5a69211c278a05ef7db090..087c530c0c3bfdcbaa42f0f7f74d241ce5e3ce44 100644 (file)
@@ -1532,8 +1532,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
               qemuMonitorMigrationStatusTypeToString(status));
 
     priv = vm->privateData;
-    if (priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_OUT &&
-        priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_IN) {
+    if (priv->job.asyncJob == QEMU_ASYNC_JOB_NONE) {
         VIR_DEBUG("got MIGRATION event without a migration job");
         goto cleanup;
     }