[libvirt PATCH v2 03/81] Introduce VIR_DOMAIN_RUNNING_POSTCOPY_FAILED
Peter Krempa
pkrempa at redhat.com
Mon Jun 6 12:35:10 UTC 2022
On Mon, Jun 06, 2022 at 14:29:20 +0200, Peter Krempa wrote:
> On Wed, Jun 01, 2022 at 14:49:03 +0200, Jiri Denemark wrote:
> > This new "post-copy failed" reason for the running state will be used on
> > the destination host when post-copy migration fails while the domain is
> > already running there.
> >
> > Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> > ---
> >
> > Notes:
> > Version 2:
> > - documented both VIR_DOMAIN_RUNNING_POSTCOPY_FAILED and
> > VIR_DOMAIN_PAUSED_POSTCOPY_FAILED possibilities on the destination
> >
> > examples/c/misc/event-test.c | 3 +++
> > include/libvirt/libvirt-domain.h | 2 ++
> > src/conf/domain_conf.c | 1 +
> > src/libvirt-domain.c | 26 +++++++++++++++++++-------
> > src/qemu/qemu_domain.c | 3 +++
> > tools/virsh-domain-event.c | 3 ++-
> > tools/virsh-domain-monitor.c | 1 +
> > 7 files changed, 31 insertions(+), 8 deletions(-)
>
> [...]
>
> > diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
> > index e3ced700b8..b9f1d73d5a 100644
> > --- a/src/libvirt-domain.c
> > +++ b/src/libvirt-domain.c
> > @@ -9764,10 +9764,16 @@ virDomainMigrateGetMaxSpeed(virDomainPtr domain,
> > * at most once no matter how fast it changes. On the other hand once the
> > * guest is running on the destination host, the migration can no longer be
> > * rolled back because none of the hosts has complete state. If this happens,
> > - * libvirt will leave the domain paused on both hosts with
> > - * VIR_DOMAIN_PAUSED_POSTCOPY_FAILED reason. It's up to the upper layer to
> > - * decide what to do in such case. Because of this, libvirt will refuse to
> > - * cancel post-copy migration via virDomainAbortJob.
> > + * libvirt will leave the domain paused on the source host with
> > + * VIR_DOMAIN_PAUSED_POSTCOPY_FAILED reason. The domain on the destination host
> > + * will either remain running with VIR_DOMAIN_RUNNING_POSTCOPY_FAILED reason if
> > + * libvirt loses control over the migration (e.g., the daemon is restarted or
> > + * libvirt connection is broken) while QEMU is still able to continue migrating
> > + * memory pages from the source to the destination or it will be paused with
> > + * VIR_DOMAIN_PAUSED_POSTCOPY_FAILED if even the connection between QEMU
> > + * processes gets broken. It's up to the upper layer to decide what to do in
>
> I presume this bit is still up for discussion, right? Currently with the
> RFC patch 81 you'd attempt to pause it but qemu will break anyways IIUC.
>
> If that is the case, this should for now document it properly.
Never mind. I've re-read the paragraph (and code in next patch and
noticed that it's meant on the source side, which makes sense.
Reviewed-by: Peter Krempa <pkrempa at redhat.com>
More information about the libvir-list
mailing list