Message ID | 1468601086-32117-1-git-send-email-dgilbert@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On (Fri) 15 Jul 2016 [17:44:46], Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > If a migration fails/is cancelled during the postcopy stage we currently > end up with the runstate as finish-migrate, where it should be post-migrate. > There's a small window in precopy where I think the same thing can > happen, but I've never seen it. > > It rarely matters; the only postcopy case is if you restart a migration, which > again is a case that rarely matters in postcopy because it's only > safe to restart the migration if you know the destination hasn't > been running (which you might if you started the destination with -S > and hadn't got around to 'c' ing it before the postcopy failed). > Even then it's a small window but potentially you could hit if > there's a problem loading the devices on the destination. > > This corresponds to: > https://bugzilla.redhat.com/show_bug.cgi?id=1355683 > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Amit
diff --git a/migration/migration.c b/migration/migration.c index c4e0193..955d5ee 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1837,6 +1837,10 @@ static void *migration_thread(void *opaque) } else { if (old_vm_running && !entered_postcopy) { vm_start(); + } else { + if (runstate_check(RUN_STATE_FINISH_MIGRATE)) { + runstate_set(RUN_STATE_POSTMIGRATE); + } } } qemu_bh_schedule(s->cleanup_bh);