[libvirt-users] undefining and redefining a Domain

Matthias Bolte matthias.bolte at googlemail.com
Fri Oct 1 16:11:09 UTC 2010


2010/10/1 Roberto Attias (rattias) <rattias at cisco.com>:
> <resending as I don’t think I was in the mailing list yet when I sent first
> time… apologies if you receive this twice>
>
>
>
> Hello,
>
> I’m facing some strange behavior, and I hope you can provide a
> clarification.
>
> Consider the following code:
>
>
>
>      virDomainPtr dom = virDomainLookupByName(virt, domain_name);
>
>      if (dom) {
>
>            printf("domain already defined...\n");
>
>            if (virDomainUndefine(dom))
>
>                 printf("...unable to undefine!!!\n");
>
>            else {
>
>                 printf("...undefined.");
>
>                 free(dom);
>
>            }
>
>      }

You're leaking a virDomainPtr here. Call virDomainFree(dom) before
overwriting the pointer with the result from virDomainDefineXML.

I think the leaked virDomainPtr causes the trouble you describe. So
fixing the leak will probably also fix the problem you see in the
second run.

>      dom = virDomainDefineXML(virt, SOME_XML);
>

Matthias




More information about the libvirt-users mailing list