2011/8/1 Wen Congyang <wencongyang@xxxxxxxxx>: > At 08/01/2011 06:02 PM, Matthias Bolte write: >> >> 2011/8/1 Wen Congyang<wency@xxxxxxxxxxxxxx>: >>> >>> 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list