The call to migrate_fd_error() was missing for non-socket backends, so centralize it in qmp_migrate().
Before: (qemu) migrate fd:ffff migrate: An undefined error has occurred (qemu) info migrate (qemu) After: (qemu) migrate fd:ffff migrate: An undefined error has occurred (qemu) info migrate capabilities: xbzrle: off Migration status: failed total time: 0 milliseconds (The awful error message will be fixed later in the series). Reviewed-by: Luiz Capitulino <lcapitul...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- migration-tcp.c | 1 - migration-unix.c | 1 - migration.c | 1 + 3 file modificati, 1 inserzione(+), 2 rimozioni(-) diff --git a/migration-tcp.c b/migration-tcp.c index 78337a3..e8bc76a 100644 --- a/migration-tcp.c +++ b/migration-tcp.c @@ -79,7 +79,6 @@ int tcp_start_outgoing_migration(MigrationState *s, const char *host_port, s->fd = inet_nonblocking_connect(host_port, tcp_wait_for_connect, s, &local_err); if (local_err != NULL) { - migrate_fd_error(s); error_propagate(errp, local_err); return -1; } diff --git a/migration-unix.c b/migration-unix.c index 169de88..d349662 100644 --- a/migration-unix.c +++ b/migration-unix.c @@ -111,7 +111,6 @@ int unix_start_outgoing_migration(MigrationState *s, const char *path) if (ret < 0) { DPRINTF("connect failed\n"); - migrate_fd_error(s); return ret; } migrate_fd_connect(s); diff --git a/migration.c b/migration.c index 8a04174..a56358e 100644 --- a/migration.c +++ b/migration.c @@ -522,6 +522,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, } if (ret < 0 || local_err) { + migrate_fd_error(s); if (!local_err) { error_set_errno(errp, -ret, QERR_UNDEFINED_ERROR); } else { -- 1.7.12.1