From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Eventually, during a seamless migration, qemu may finish to migrate before the spice client even finished to connect all channels to destination and informed the server. In this case, main_channel_client_migrate_src_complete() will fall back to switch-host method, and reds_mig_fill_wait_disconnect() is called to complete the migration (disconnecting all channels). reds_mig_cleanup() is called when all channels are disconnected, but reds->mig_wait_connect is still TRUE, and it will call migrate_connect_complete() instead of the expected migrate_end_complete(). Setting reds->mig_wait_connect to FALSE when reds_mig_fill_wait_disconnect() solves the issue. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1352836 Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> --- server/reds.c | 1 + 1 file changed, 1 insertion(+) diff --git a/server/reds.c b/server/reds.c index 10b943a..969fe62 100644 --- a/server/reds.c +++ b/server/reds.c @@ -2982,6 +2982,7 @@ static void reds_mig_fill_wait_disconnect(RedsState *reds) reds->mig_wait_disconnect_clients = g_list_append(reds->mig_wait_disconnect_clients, client); } + reds->mig_wait_connect = FALSE; reds->mig_wait_disconnect = TRUE; reds->core->timer_start(reds->mig_timer, MIGRATE_TIMEOUT); } -- 2.9.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel