mirror of
https://github.com/qemu/qemu.git
synced 2025-07-30 12:58:51 +00:00
migration: Fix hang after error in destination setup phase
If the destination side fails at migration_ioc_process_incoming() before starting the coroutine, it will report the error but QEMU will not exit. Set the migration state to FAILED and exit the process if exit-on-error allows. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2633 Reported-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Message-ID: <20250213175927.19642-5-farosas@suse.de> Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
@ -33,6 +33,7 @@
|
||||
void migration_channel_process_incoming(QIOChannel *ioc)
|
||||
{
|
||||
MigrationState *s = migrate_get_current();
|
||||
MigrationIncomingState *mis = migration_incoming_get_current();
|
||||
Error *local_err = NULL;
|
||||
|
||||
trace_migration_set_incoming_channel(
|
||||
@ -47,6 +48,10 @@ void migration_channel_process_incoming(QIOChannel *ioc)
|
||||
|
||||
if (local_err) {
|
||||
error_report_err(local_err);
|
||||
migrate_set_state(&s->state, s->state, MIGRATION_STATUS_FAILED);
|
||||
if (mis->exit_on_error) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user