[RESEND][PATCH] migration: fix xml file residual during vm crash with migration

From 935ec812b822ca978631e72bb9b9a5d00df24a42 Mon Sep 17 00:00:00 2001 From: Zheng Chuan <zhengchuan@huawei.com> Date: Mon, 27 Jul 2020 14:39:05 +0800 Subject: [PATCH] migration: fix xml file residual during vm crash with migration
when migration is cancelled (such as kill -9 vmpid in Src, etc), it could do virDomainSaveStatus() to save xml file after qemuProcessStop(), which results in xml residulal. Fix it by that do not do virDomainSaveStatus() if vm is not active. Signed-off-by: Zheng Chuan <zhengchuan@huawei.com> --- src/qemu/qemu_migration.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2c7bf34..d2804ab 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3073,6 +3073,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags); + if (!virDomainObjIsActive(vm)) + goto done; + if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); } -- 1.8.3.1

On 7/27/20 5:28 AM, zhengchuan wrote:
From 935ec812b822ca978631e72bb9b9a5d00df24a42 Mon Sep 17 00:00:00 2001 From: Zheng Chuan <zhengchuan@huawei.com> Date: Mon, 27 Jul 2020 14:39:05 +0800 Subject: [PATCH] migration: fix xml file residual during vm crash with migration
I think the wording here would be 'fix residual xml file during ...'
when migration is cancelled (such as kill -9 vmpid in Src, etc), it could
Capital W in 'When'
do virDomainSaveStatus() to save xml file after qemuProcessStop(), which results in xml residulal.
residulal -> residual
Fix it by that do not do virDomainSaveStatus() if vm is not active.
'Fix that by not doing virDomainSaveStatus() if vm is not active' is clearer.
Signed-off-by: Zheng Chuan <zhengchuan@huawei.com> --- src/qemu/qemu_migration.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2c7bf34..d2804ab 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3073,6 +3073,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags);
+ if (!virDomainObjIsActive(vm)) + goto done; +
This patch breaks build as is because this function does not have a 'done' label any more. I changed it here to 'return 0' and it passed the tests. Not sure if returning 0 here is what you want though. Thanks, DHB
if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); }

On 7/27/20 10:28 AM, zhengchuan wrote:
From 935ec812b822ca978631e72bb9b9a5d00df24a42 Mon Sep 17 00:00:00 2001 From: Zheng Chuan <zhengchuan@huawei.com> Date: Mon, 27 Jul 2020 14:39:05 +0800 Subject: [PATCH] migration: fix xml file residual during vm crash with migration
when migration is cancelled (such as kill -9 vmpid in Src, etc), it could do virDomainSaveStatus() to save xml file after qemuProcessStop(), which results in xml residulal.
Fix it by that do not do virDomainSaveStatus() if vm is not active.
Signed-off-by: Zheng Chuan <zhengchuan@huawei.com> --- src/qemu/qemu_migration.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2c7bf34..d2804ab 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -3073,6 +3073,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, jobPriv->migParams, priv->job.apiFlags);
+ if (!virDomainObjIsActive(vm)) + goto done; + if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); }
This is exactly what qemuDomainObjSaveStatus() would do. Michal
participants (3)
-
Daniel Henrique Barboza
-
Michal Privoznik
-
zhengchuan