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


Reply via email to