On Mon, May 19, 2008 at 04:31:36PM -0400, Cole Robinson wrote: > Daniel P. Berrange wrote: > > On Mon, May 19, 2008 at 04:21:55PM -0400, Cole Robinson wrote: > >> Cole Robinson wrote: > >>> The patch below fixes an issue in the python bindings with the > >>> vir*Destroy methods. After the object is successfully destroyed, > >>> the payload is cleared, using 'self._o = None'. This unfortunately > >>> screws up virt object reference counts, as the payload should be > >>> free'd using the appropriate vir*Free function. > >>> > >> Hmm, I might be wrong about this. Reading the virDomainDestroy > >> description in libvirt.c, destroy is supposed to free the > >> domain object if the operation is successful. The qemu driver > >> currently does not do this. In fact, from what I gather, none > >> of the drivers do this. > > > > The docs are wrong. Destory merely hard-kills the object being managed. > > It does not free memory associated with the object. > > > >> If the virDomainDestroy comment is correct, then the original > >> python statement is sufficient, but the drivers need to have > >> a few virDomainFree's added. > > > > I believe your patch is correct - python should not be dropping its > > reference to the underlying C object, afte invoking the destroy method. > > It should be only be dropped after free is called > > Worth noting that there are actually places in the code that make the > assumption that virDomainDestroy _does_ free the domain object, such > as the remote driver and virsh. I'll send out a patch for those as > well. Yes, those would be bugs / memory leaks. Dan -- |: Red Hat, Engineering, Boston -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list