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

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

 



2010/11/24 Eric Blake <eblake@xxxxxxxxxx>:
> 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.
>

Thanks, pushed.

Matthias

--
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]