Re: [PATCH] Always close drivers when a virConnectPtr is released

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/24/2010 10:30 AM, Matthias Bolte wrote:
> virConnectClose calls virUnrefConnect which in turn closes
> all open drivers when the refcount of that connection dropped
> to zero. This works fine when you free all other objects that
> hold a ref to the connection before you close it, because in
> this case virUnrefConnect is the one that removes the last
> ref to the connection.
> 
> But it doesn't work when you close the connection first before
> freeing the other objects. This is because the other virUnref*
> functions call virReleaseConnect when they detect that the
> connection's refcount dropped to zero. In this case another
> virUnref* function (different from virUnrefConnect) removes the
> last ref to the connection. This results in not closing the
> open drivers and leaking things that should have been cleaned
> up in the driver close functions.
> 
> To fix this move the driver close calls to virReleaseConnect.
> ---
>  src/datatypes.c |   47 +++++++++++++++++++++++------------------------
>  1 files changed, 23 insertions(+), 24 deletions(-)

ACK - virUnrefConnect still cleans up, by virtue of calling
virReleaseConnect, but now anything else that also releases the
connection also gets to clean up.

-- 
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]