2011/8/1 Wen Congyang <wencongy...@gmail.com>:
> At 08/01/2011 06:02 PM, Matthias Bolte write:
>>
>> 2011/8/1 Wen Congyang<we...@cn.fujitsu.com>:
>>>
>>> At 07/30/2011 03:02 PM, Daniel Veillard Write:
>>>>
>>>> I actually tagged and pushed the rc2 tarball and rpms yesterday
>>>> but completely forgot to send the associated mail, oops !
>>>>
>>>>    ftp://libvirt.org/libvirt/libvirt-0.9.4-rc2.tar.gz
>>>>
>>>> Hopefully it fixes most of the problems raised with rc1, including
>>>> a number of leaks. Please report and if you had an issue with rc1
>>>> which is still not fixed there (or in git) please raise it ASAP.
>>>> I'm planning for the final release early Tuesday 2 morning (i.e.
>>>> late Monday for most :-)
>>>
>>> If client(for example: virsh) exits unexpectedly, it will cause libvirtd
>>> crashed.
>>>
>>> Steps to reproduce this problem(vm1 does not run):
>>> 1. for ((i=0; i<  50; i++)); do virsh managedsave vm1&  done; killall
>>> virsh
>>>
>>> The reason is that we free virNetServerClient when the refs is not 0.
>>
>> I'm not sure what you mean here. virNetClientFree frees the client
>> when the last ref is removed.
>>
>>> I read the code under the directory src/rpc/, and find we have xxxRef(),
>>> but
>>> we do not have xxxUnref(). And sometimes we free the data structure if
>>> ref is
>>> not 0. We add an reference of the data structure, but sometimes we forget
>>> to
>>> unref it.
>>
>> We already have an unref function it's called virNetClientFree.
>
> Sorry for confusing you.
>
> The reason is that:
> In the function virNetServerClientClose(), we set client->sock to NULL while
> we still use it.
>
> Thanks.
>
> Wen Congyang

Ah, you're talking about the server side. I only looked at the client
side of the RPC code while trying to understand the memleak.

-- 
Matthias Bolte
http://photron.blogspot.com

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

Reply via email to