[libvirt] [PATCH 13/16] Close all sockets before cancelling QEMU migration

Eric Blake eblake at redhat.com
Thu May 12 20:18:03 UTC 2011


On 05/12/2011 10:04 AM, Daniel P. Berrange wrote:
> Cancelling the QEMU migration may cause QEMU to flush pending
> data on the migration socket. This may in turn block QEMU if
> nothing reads from the other end of the socket. Closing the
> socket before cancelling QEMU migration avoids this possible
> deadlock.
> 
> * src/qemu/qemu_migration.c: Close sockets before cancelling
>   migration on failure
> ---
>  src/qemu/qemu_migration.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index 0eefe5c..ef18ded 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -1494,6 +1494,8 @@ static int doTunnelMigrate(struct qemud_driver *driver,
>  
>  cancel:
>      if (ret != 0 && virDomainObjIsActive(vm)) {
> +        VIR_FORCE_CLOSE(client_sock);
> +        VIR_FORCE_CLOSE(qemu_sock);
>          qemuDomainObjEnterMonitorWithDriver(driver, vm);
>          qemuMonitorMigrateCancel(priv->mon);
>          qemuDomainObjExitMonitorWithDriver(driver, vm);

ACK.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110512/b560e3a1/attachment-0001.sig>


More information about the libvir-list mailing list