[Spice-commits] server/reds.c

Christophe Fergau teuf at kemper.freedesktop.org
Thu Jul 28 09:58:04 UTC 2016

 server/reds.c |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit e2ae0b3c3fb6bf367a7551693f8f5b0073b2516c
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date:   Wed Jul 20 17:16:31 2016 +0400

    Call migrate_end_complete() after falling back to switch-host
    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.
    Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>

diff --git a/server/reds.c b/server/reds.c
index 992cf03..6f88649 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -2987,6 +2987,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);

More information about the Spice-commits mailing list