* Amit Shah (amit.s...@redhat.com) 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 <amit.s...@redhat.com>
> ---
>  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?

Dave

>      /* If global state section was not received or we are in running
>         state, we need to obey autostart. Any other state is set with
>         runstate_set. */
> -- 
> 2.4.3
> 
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK

Reply via email to