[libvirt PATCH 15/80] qemu: Abort failed post-copy when we haven't called Finish yet
Peter Krempa
pkrempa at redhat.com
Wed May 11 12:42:15 UTC 2022
On Tue, May 10, 2022 at 17:20:36 +0200, Jiri Denemark wrote:
> When migration fails after it already switched to post-copy phase on the
> source, but early enough that we haven't called Finish on the
> destination yet, we know the vCPUs were not started on the destination
> and the source host still has a complete state of the domain. Thus we
> can just ignore the fact post-copy phase started and normally abort the
> migration and resume vCPUs on the source.
>
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> src/qemu/qemu_migration.c | 9 +++++++++
> src/qemu/qemu_process.c | 20 ++++++++------------
> 2 files changed, 17 insertions(+), 12 deletions(-)
>
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 532a9300b6..e892a09885 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -4442,6 +4442,15 @@ qemuMigrationSrcRun(virQEMUDriver *driver,
> virErrorPreserveLast(&orig_err);
>
> if (virDomainObjIsActive(vm)) {
> + int reason;
> + virDomainState state = virDomainObjGetState(vm, &reason);
> +
> + if (state == VIR_DOMAIN_PAUSED && reason == VIR_DOMAIN_PAUSED_POSTCOPY) {
> + VIR_DEBUG("Aborting failed post-copy migration as the destination "
> + "is not running yet");
Preferrably no linebreaks in new diagnostic strings.
Reviewed-by: Peter Krempa <pkrempa at redhat.com>
More information about the libvir-list
mailing list