]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: set jobinfo type to FAILED if job is failed in qemuMigrationRun
authorWang Rui <moon.wangrui@huawei.com>
Mon, 1 Dec 2014 07:05:33 +0000 (15:05 +0800)
committerMartin Kletzander <mkletzan@redhat.com>
Mon, 1 Dec 2014 07:17:24 +0000 (08:17 +0100)
If job is failed in qemuMigrationRun, we expect the jobinfo type as
FAILED. But jobinfo type won't be updated until entering
qemuMigrationWaitForCompletion. We should make it updated in all
conditions. Moreover, we can't use qemuMigrationUpdateJobStatus
here because job may fail in libvirt, so we can't query job status
from QEMU.

Signed-off-by: Wang Rui <moon.wangrui@huawei.com>
src/qemu/qemu_migration.c

index 3c47d7c90cb4ffe824aa913c7a52e84d7b642601..f19e68ccf6d0aadc6140fe96c4ff52e9d0ec01d3 100644 (file)
@@ -3723,8 +3723,10 @@ qemuMigrationRun(virQEMUDriverPtr driver,
      * confirm3 step, but need to release the lock state
      */
     if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
-        if (qemuMigrationSetOffline(driver, vm) < 0)
+        if (qemuMigrationSetOffline(driver, vm) < 0) {
+            priv->job.current->type = VIR_DOMAIN_JOB_FAILED;
             goto cleanup;
+        }
     }
 
     ret = 0;
@@ -3748,6 +3750,9 @@ qemuMigrationRun(virQEMUDriverPtr driver,
         qemuDomainJobInfoUpdateDowntime(priv->job.completed);
     }
 
+    if (priv->job.current->type == VIR_DOMAIN_JOB_UNBOUNDED)
+        priv->job.current->type = VIR_DOMAIN_JOB_FAILED;
+
     cookieFlags |= QEMU_MIGRATION_COOKIE_NETWORK |
                    QEMU_MIGRATION_COOKIE_STATS;
     if (flags & VIR_MIGRATE_PERSIST_DEST)