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 Regards, 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