From 7e34d9a9e076ea0bd550268ad4830f53a8466f3e Mon Sep 17 00:00:00 2001 From: Nikolay Shirokovskiy Date: Tue, 18 Aug 2020 11:01:40 +0300 Subject: [PATCH] qemu: fix qemuMigrationSrcCleanup to use qemuMigrationJobFinish qemuMigrationSrcCleanup uses qemuDomainObjDiscardAsyncJob currently. But discard does not reduce jobs_queued counter so it leaks. Also discard does not notify other threads that job condition is available. Discard does reset nested job but nested job is not possible in this conditions. Signed-off-by: Nikolay Shirokovskiy Reviewed-by: Jiri Denemark --- src/qemu/qemu_migration.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 0cf0788f1f..8c3af7f04a 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2132,7 +2132,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, switch ((qemuMigrationJobPhase) priv->job.phase) { case QEMU_MIGRATION_PHASE_BEGIN3: /* just forget we were about to migrate */ - qemuDomainObjDiscardAsyncJob(driver, vm); + qemuMigrationJobFinish(driver, vm); break; case QEMU_MIGRATION_PHASE_PERFORM3_DONE: @@ -2142,7 +2142,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); /* clear the job and let higher levels decide what to do */ - qemuDomainObjDiscardAsyncJob(driver, vm); + qemuMigrationJobFinish(driver, vm); break; case QEMU_MIGRATION_PHASE_PERFORM3: -- 2.47.2