On Thu, Oct 30, 2025 at 10:49:09PM +0100, Juraj Marcin wrote: > From: Juraj Marcin <[email protected]> > > 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 <[email protected]>
Reviewed-by: Peter Xu <[email protected]> > --- > 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 > -- > 2.51.0 > -- Peter Xu
