qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/1] migration: announce VM's new home just befo


From: Amit Shah
Subject: Re: [Qemu-devel] [PATCH 1/1] migration: announce VM's new home just before VM is runnable
Date: Wed, 14 Oct 2015 18:36:07 +0530

On (Wed) 14 Oct 2015 [13:38:30], Dr. David Alan Gilbert wrote:
> * Amit Shah (address@hidden) wrote:
> > We were announcing the dest host's IP as our new IP a bit too soon -- if
> > there were errors detected after this announcement was done, the
> > migration is failed and the VM could continue running on the src host --
> > causing problems later.
> > 
> > Move around the qemu_announce_self() call so it's done just before the
> > VM is runnable.
> > 
> > Signed-off-by: Amit Shah <address@hidden>
> > ---
> >  migration/migration.c | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/migration/migration.c b/migration/migration.c
> > index b7de9b7..ca21ba8 100644
> > --- a/migration/migration.c
> > +++ b/migration/migration.c
> > @@ -295,7 +295,6 @@ static void process_incoming_migration_co(void *opaque)
> >          exit(EXIT_FAILURE);
> >      }
> >      migrate_generate_event(MIGRATION_STATUS_COMPLETED);
> > -    qemu_announce_self();
> >  
> >      /* Make sure all file formats flush their mutable metadata */
> >      bdrv_invalidate_cache_all(&local_err);
> > @@ -305,6 +304,12 @@ static void process_incoming_migration_co(void *opaque)
> >          exit(EXIT_FAILURE);
> >      }
> >  
> > +    /*
> > +     * This must happen after all error conditions are dealt with and
> > +     * we're sure the VM is going to be running on this host.
> > +     */
> > +    qemu_announce_self();
> > +
> 
> OK, so that's certainly better than it was before; but should be even
> further down?  Should we do an announce-self at all if we are not
> going to do the vm_start?

Assumption is that if migration has succeeded, the VM will be started
on this host.  The VM is paused only because it was in paused state
before the migration started -- due to an IO error, due to non-live
migration -- so IMO this actually is the right place for that.


                Amit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]