* 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