[libvirt] [PATCH] event-test: Unregister close callback
Eric Blake
eblake at redhat.com
Fri Dec 13 19:36:41 UTC 2013
On 12/13/2013 10:12 AM, Michal Privoznik wrote:
> When registering a close callback, the connection refcount is increased
> as the connection object is passed to the callback and hence we must
> prevent deleting it too soon. However, when closing the connection, the
> connection object is just unrefed. So whenever a connection with a close
> callback is closed, we end up with the connection object which has
> exactly one reference. Leaving the code as-is doesn't mean the end of
> the world as we know it, but why give a bad example?
>
> ==14531== 288 bytes in 1 blocks are still reachable in loss record 695 of 762
> ==14531== at 0x4C2BDE4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==14531== by 0x4E9FE09: virAllocVar (viralloc.c:558)
> ==14531== by 0x4EDBE45: virObjectNew (virobject.c:190)
> ==14531== by 0x4F71AAC: virGetConnect (datatypes.c:116)
> ==14531== by 0x4F78511: do_open (libvirt.c:1136)
> ==14531== by 0x4F7B3AC: virConnectOpenAuth (libvirt.c:1481)
> ==14531== by 0x4011D2: main (event-test.c:499)
>
> (and other leaks tied to virGetConnect())
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> examples/object-events/event-test.c | 2 ++
> 1 file changed, 2 insertions(+)
ACK.
>
> diff --git a/examples/object-events/event-test.c b/examples/object-events/event-test.c
> index f872b9f..228a091 100644
> --- a/examples/object-events/event-test.c
> +++ b/examples/object-events/event-test.c
> @@ -675,6 +675,8 @@ int main(int argc, char **argv)
> virConnectDomainEventDeregisterAny(dconn, callback8ret);
> }
>
> + virConnectUnregisterCloseCallback(dconn, connectClose);
> +
> VIR_DEBUG("Closing connection");
> if (dconn && virConnectClose(dconn) < 0) {
> printf("error closing\n");
>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20131213/d2072907/attachment-0001.sig>
More information about the libvir-list
mailing list