Re: [PATCHv3 6/6] rpc: Fix connection close callback race condition and memory corruption/crash

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

 



On 03/31/2013 10:20 AM, Peter Krempa wrote:
> The last Viktor's effort to fix the race and memory corruption unfortunately
> wasn't complete in the case the close callback was not registered in an
> connection. At that time, the trail of event's that I'll describe later could
> still happend and corrupt the memory or cause a crash of the client (including
> the daemon in case of a p2p migration).

> 
> The new object - virConnectCloseCallbackData - is a lockable object that keeps
> the pointers to the real user registered callback and ensures that the
> connection callback is either not called if the connection was already freed or
> that the connection isn't freed while this is being called.
> ---
>  src/datatypes.c            | 55 ++++++++++++++++++++++++++++++++++++--------
>  src/datatypes.h            | 22 ++++++++++++++----
>  src/libvirt.c              | 29 ++++++++++++-----------
>  src/remote/remote_driver.c | 57 +++++++++++++++++++++++++++-------------------
>  4 files changed, 112 insertions(+), 51 deletions(-)

I've (finally) completed my stress-testing, and agree that this patch is
sufficient to avoid the race (especially when patch 1/6 is also applied
to make the race more obvious).

ACK, and let's get this applied and backported to maintenance branches
as appropriate.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
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]