Spice client is required to connect to the migration target before/as migration starts. Previously, it connected upon migration completion, however, the ticket was set in the beginning, thus when migration time was > ticket_expiration_time, spice failed to connect to the target.
Since the migration target is blocked after migration starts, we execute spice-client connection to the target before migration, upon client_migrate_info. We wait till the client is connected to the target, or till a timeout occurs. In order to not block the iothread, this patch turns client_migrate_info to asynchronous. In addition, we changed the spice api: (1) client_migrate_info need to call spice_server_migrate_connect (2) spice_server_migrate_start/end need to be called upon migration start/end ** spice_server_start and the migrate_end_complete callback, were added for future use, in case we implement a real seamless spice migration Spice server patches will be emailed next. They are for the 0.8 spice branch, but will be ported to upstream soon. Yonit Halperin (2): spice: turn client_migrate_info to async spice: support the new migration interface (spice 0.8.3) hmp-commands.hx | 3 +- monitor.c | 6 +++- qmp-commands.hx | 3 +- ui/qemu-spice.h | 13 +++++++++- ui/spice-core.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 81 insertions(+), 10 deletions(-) -- 1.7.4.4