migration: restore vmstate on migration failure
1. Otherwise failed migration just drops guest-panicked state, which is
not good for management software.
2. We do keep different paused states like guest-panicked during
migration with help of global_state state.
3. We do restore running state on source when migration is cancelled or
failed.
4. "postmigrate" state is documented as "guest is paused following a
successful 'migrate'", so originally it's only for successful path
and we never documented current behavior.
Let's restore paused states like guest-panicked in case of cancel or
fail too. Allow same transitions like for inmigrate state.
This commit changes the behavior that was introduced by commit
42da5550d6
"migration: set state to post-migrate on failure" and
provides a bit different fix on related
https://bugzilla.redhat.com/show_bug.cgi?id=1355683
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20230517123752.21615-6-vsementsov@yandex-team.ru>
Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
f4584076fc
commit
a4c6275aa1
@ -2772,7 +2772,7 @@ static void migration_iteration_finish(MigrationState *s)
|
||||
}
|
||||
} else {
|
||||
if (runstate_check(RUN_STATE_FINISH_MIGRATE)) {
|
||||
runstate_set(RUN_STATE_POSTMIGRATE);
|
||||
runstate_set(s->vm_old_state);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -121,7 +121,13 @@ static const RunStateTransition runstate_transitions_def[] = {
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_PAUSED },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_POSTMIGRATE },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_PRELAUNCH },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_COLO},
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_COLO },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_INTERNAL_ERROR },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_IO_ERROR },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_SHUTDOWN },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_SUSPENDED },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_WATCHDOG },
|
||||
{ RUN_STATE_FINISH_MIGRATE, RUN_STATE_GUEST_PANICKED },
|
||||
|
||||
{ RUN_STATE_RESTORE_VM, RUN_STATE_RUNNING },
|
||||
{ RUN_STATE_RESTORE_VM, RUN_STATE_PRELAUNCH },
|
||||
|
Loading…
Reference in New Issue
Block a user