migration: Respect exit-on-error when migration fails before resuming

When exit-on-error was added to migration, it wasn't added to postcopy.
Even though postcopy migration will usually pause and not fail, in cases
it does unrecoverably fail before destination side has been started,
exit-on-error will allow management to query the error.

Signed-off-by: Juraj Marcin <jmarcin@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20251103183301.3840862-7-jmarcin@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
Juraj Marcin 2025-11-03 19:32:55 +01:00 committed by Peter Xu
parent 468a7effde
commit b1a17a519b

View file

@ -2080,11 +2080,16 @@ bool postcopy_is_paused(MigrationStatus status)
static void postcopy_listen_thread_bh(void *opaque)
{
MigrationState *s = migrate_get_current();
MigrationIncomingState *mis = migration_incoming_get_current();
migration_incoming_state_destroy();
if (mis->state == MIGRATION_STATUS_FAILED) {
if (mis->state == MIGRATION_STATUS_FAILED && mis->exit_on_error) {
WITH_QEMU_LOCK_GUARD(&s->error_mutex) {
error_report_err(s->error);
s->error = NULL;
}
/*
* If something went wrong then we have a bad state so exit;
* we only could have gotten here if something failed before