[libvirt] RPC ref count question

Daniel P. Berrange berrange at redhat.com
Fri Jun 15 09:58:52 UTC 2012


On Fri, Jun 15, 2012 at 12:50:03PM +0300, Radu Caragea wrote:
> Hi everyone,
> 
> >From what I understand after defining a domain with
> remoteDomainCreateXML, the corresponding destroy call is
> remoteDomainDestroy, both from the automatically generated
> remote_client_bodies.h
> My question is why the domain isn't freed in the destroy procedure
> (with virUnrefDomain or other) ? Is it supposed to be called
> separately or is it a bug ? I'm asking because from what I saw the
> connection refcount increments in domain creation but doesn't
> decrement in destroy.

The virDomainCreateXML() method call (which triggers remoteDomainCreateXML)
returns a newly created virDomainPtr object with refcnt==1. 

After calling virDomainDestroy() it is possible for the virDomainPtr to
actually still exist - eg someone may have made the VM persistent in the
meanwhile by calling virDomainDefine. Thus it is the responsibility of
the app to call virDomainFree() when they no longer want the virDomainPtr
instance. We won't free it as a side-effect of any other call.


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list