]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Don't reset TLS in qemuMigrationRun
authorJiri Denemark <jdenemar@redhat.com>
Wed, 5 Apr 2017 08:24:47 +0000 (10:24 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 7 Apr 2017 11:43:37 +0000 (13:43 +0200)
Finished qemuMigrationRun does not mean the migration itself finished
(it might have just switched to post-copy mode). While resetting TLS
parameters is probably OK at this point even if migration is still
running, we want to consolidate the code which resets various migration
parameters. Thus qemuMigrationResetTLS will be called from the Confirm
phase (or at the end of the Perform phase in case of v2 protocol), when
migration is either canceled or finished.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_migration.c

index 68e72b37f34bea4b16406ec58fb00b1298d38683..87506c73adcf0c8e4049fe3858cd534986666ef7 100644 (file)
@@ -3216,6 +3216,9 @@ qemuMigrationConfirmPhase(virQEMUDriverPtr driver,
             qemuDomainEventQueue(driver, event);
         }
 
+        qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
+                              NULL, NULL);
+
         if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
             VIR_WARN("Failed to save status on vm %s", vm->def->name);
     }
@@ -3848,10 +3851,6 @@ qemuMigrationRun(virQEMUDriverPtr driver,
             ret = -1;
     }
 
-    if (qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
-                              tlsAlias, secAlias) < 0)
-        ret = -1;
-
     VIR_FREE(tlsAlias);
     VIR_FREE(secAlias);
     virObjectUnref(cfg);
@@ -4827,6 +4826,13 @@ qemuMigrationPerformJob(virQEMUDriverPtr driver,
     if (ret < 0)
         orig_err = virSaveLastError();
 
+    /* v2 proto has no confirm phase so we need to reset migration parameters
+     * here
+     */
+    if (!v3proto && ret < 0)
+        qemuMigrationResetTLS(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
+                              NULL, NULL);
+
     if (qemuMigrationRestoreDomainState(conn, vm)) {
         event = virDomainEventLifecycleNewFromObj(vm,
                                          VIR_DOMAIN_EVENT_RESUMED,