From nobody Wed May 14 13:14:03 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1522853362587494.547319644759; Wed, 4 Apr 2018 07:49:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 99FFB7FEAC; Wed, 4 Apr 2018 14:49:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6D4CD6C320; Wed, 4 Apr 2018 14:49:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 2764218355D6; Wed, 4 Apr 2018 14:49:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w34Eg6Q3020241 for ; Wed, 4 Apr 2018 10:42:08 -0400 Received: by smtp.corp.redhat.com (Postfix) id A851B10B2B52; Wed, 4 Apr 2018 14:42:08 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6C28B10B2B51 for ; Wed, 4 Apr 2018 14:42:08 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 5BDCB104658; Wed, 4 Apr 2018 16:42:02 +0200 (CEST) From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 4 Apr 2018 16:41:56 +0200 Message-Id: <3ec54de6ac71245f1d0ec0179bf8114eb679dc31.1522852108.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 67/68] qemu: Don't delete TLS objects unless TLS migration was requested X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 04 Apr 2018 14:49:21 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Trying to delete the non-existent TLS objects results in ugly error messages in the log, which could easily confuse users. Let's avoid this confusion by not trying to delete the objects if we were not asked to enable TLS migration and thus we didn't created the objects anyway. This patch restores the behavior to the state before "qemu: Reset all migration parameters". Signed-off-by: Jiri Denemark --- src/qemu/qemu_migration.c | 12 ++++++------ src/qemu/qemu_migration_params.c | 18 ++++++++++++------ src/qemu/qemu_migration_params.h | 3 ++- src/qemu/qemu_process.c | 6 ++++-- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 808a6c147e..c7dcbf0788 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1771,7 +1771,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, " domain was successfully started on destination or not", vm->def->name); qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); /* clear the job and let higher levels decide what to do */ qemuDomainObjDiscardAsyncJob(driver, vm); break; @@ -2496,7 +2496,7 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, =20 stopjob: qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); =20 if (stopProcess) { unsigned int stopFlags =3D VIR_QEMU_PROCESS_STOP_MIGRATED; @@ -2866,7 +2866,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, } =20 qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); =20 if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); @@ -4490,7 +4490,7 @@ qemuMigrationSrcPerformJob(virQEMUDriverPtr driver, */ if (!v3proto && ret < 0) qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); =20 if (qemuMigrationSrcRestoreDomainState(driver, vm)) { event =3D virDomainEventLifecycleNewFromObj(vm, @@ -4579,7 +4579,7 @@ qemuMigrationSrcPerformPhase(virQEMUDriverPtr driver, endjob: if (ret < 0) { qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); qemuMigrationJobFinish(driver, vm); } else { qemuMigrationJobContinue(vm); @@ -5035,7 +5035,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, } =20 qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, - priv->job.migParams); + priv->job.migParams, priv->job.apiFlags); =20 qemuMigrationJobFinish(driver, vm); if (!virDomainObjIsActive(vm)) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_par= ams.c index 6634fae4f6..a9c0d90f00 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -803,6 +803,7 @@ qemuMigrationParamsDisableTLS(virDomainObjPtr vm, * @driver: pointer to qemu driver * @vm: domain object * @asyncJob: migration job to join + * @apiFlags: API flags used to start the migration * * Deconstruct all the setup possibly done for TLS - delete the TLS and * security objects, free the secinfo, and reset the migration params to "= ". @@ -811,13 +812,16 @@ static void qemuMigrationParamsResetTLS(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMigrationParamsPtr origParams) + qemuMigrationParamsPtr origParams, + unsigned long apiFlags) { char *tlsAlias =3D NULL; char *secAlias =3D NULL; =20 - /* If QEMU does not support TLS migration we didn't set the aliases. */ - if (!origParams->params[QEMU_MIGRATION_PARAM_TLS_CREDS].set) + /* There's nothing to do if QEMU does not support TLS migration or we = were + * not asked to enable it. */ + if (!origParams->params[QEMU_MIGRATION_PARAM_TLS_CREDS].set || + !(apiFlags & VIR_MIGRATE_TLS)) return; =20 /* NB: If either or both fail to allocate memory we can still proceed @@ -966,11 +970,13 @@ void qemuMigrationParamsReset(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMigrationParamsPtr origParams) + qemuMigrationParamsPtr origParams, + unsigned long apiFlags) { virErrorPtr err =3D virSaveLastError(); =20 - VIR_DEBUG("Resetting migration parameters %p", origParams); + VIR_DEBUG("Resetting migration parameters %p, flags 0x%lx", + origParams, apiFlags); =20 if (!virDomainObjIsActive(vm) || !origParams) goto cleanup; @@ -978,7 +984,7 @@ qemuMigrationParamsReset(virQEMUDriverPtr driver, if (qemuMigrationParamsApply(driver, vm, asyncJob, origParams) < 0) goto cleanup; =20 - qemuMigrationParamsResetTLS(driver, vm, asyncJob, origParams); + qemuMigrationParamsResetTLS(driver, vm, asyncJob, origParams, apiFlags= ); =20 cleanup: if (err) { diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_par= ams.h index 8116f3f59f..2e4cbcb315 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -116,7 +116,8 @@ void qemuMigrationParamsReset(virQEMUDriverPtr driver, virDomainObjPtr vm, int asyncJob, - qemuMigrationParamsPtr origParams); + qemuMigrationParamsPtr origParams, + unsigned long apiFlags); =20 void qemuMigrationParamsFormat(virBufferPtr buf, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 89669c9765..095ce26031 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3081,7 +3081,8 @@ qemuProcessRecoverMigrationIn(virQEMUDriverPtr driver, break; } =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, job->migPara= ms); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, + job->migParams, job->apiFlags); return 0; } =20 @@ -3175,7 +3176,8 @@ qemuProcessRecoverMigrationOut(virQEMUDriverPtr drive= r, } } =20 - qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, job->migPara= ms); + qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_NONE, + job->migParams, job->apiFlags); return 0; } =20 --=20 2.17.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list