From b1a17a519b20438fb3f8435a2b7fa702f393d075 Mon Sep 17 00:00:00 2001 From: Juraj Marcin Date: Mon, 3 Nov 2025 19:32:55 +0100 Subject: [PATCH] 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 Reviewed-by: Peter Xu Link: https://lore.kernel.org/r/20251103183301.3840862-7-jmarcin@redhat.com Signed-off-by: Peter Xu --- migration/postcopy-ram.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 48cbb46c27..91431f02a4 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -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