[libvirt-users] Fwd: undefining and redefining a Domain from libvirt java bindings

Matthias Bolte matthias.bolte at googlemail.com
Thu Oct 21 15:34:50 UTC 2010


You need to free() all domain objects that represent the undefine
domain before defining a domain with the same name again:

System.out.println("first define tt2...");
Domain dm1 = conn.domainDefineXML(dumpxml);
Domain dm2 = conn.domainLookupByName("tt2");
System.out.println("Now undefine....");
if (dm2 != null) {
	System.out.println("undefine tt2...");
	dm2.undefine();
	dm2.free();
	dm1.free(); // <---------- need to free dm1 here too
	System.out.println("undefine tt2... done");
}

Matthias

2010/10/21 Ravi Pawar <ravifc at gmail.com>:
> Thanks Matthias,
>
> can you please have a look at the program attached? this should work as i
> have used free() call. but its not working for me.
>
> Thanks,
> Ravi
>
> On Mon, Oct 18, 2010 at 6:20 PM, Bryan Kearney <bkearney at redhat.com> wrote:
>>
>> On 10/15/2010 10:05 AM, Matthias Bolte wrote:
>>>
>>> 2010/10/13 Matthias Bolte<matthias.bolte at googlemail.com>:
>>>>
>>>> 2010/10/12 Matthias Bolte<matthias.bolte at googlemail.com>:
>>>>>
>>>>> 2010/10/12 Ravi Pawar<ravifc at gmail.com>:
>>>>>>
>>>>>> hi,
>>>>>>
>>>>>> i am trying to undefine a domain  by using dm.undefine();
>>>>>> and then trying to create one with same name is giving me error saying
>>>>>> 'Domain not found: no domain with matching uuid
>>>>>> 'aeae9d4e-17cb-b661-a612-88ac677c28c1'
>>>>>>
>>>>>> i have attached my test program which reproduces the issue.
>>>>>>
>>>>>> please let me know where i am going wrong?
>>>>>>
>>>>>> configuration: libvirt : 0.6.3
>>>>>>                     Java Bindings: 0.4.2
>>>>>
>>>>> I didn't look into this problem in detail, but I think you need to
>>>>> call free on the Domain object after you undefined it.
>>>>>
>>>>> dm.undefine();
>>>>> dm.free();
>>>>> dm = null;
>>>>>
>>>>> Matthias
>>>>>
>>>>
>>>> Okay, calling free doesn't help. I tested it with libvirt 0.6.3 and
>>>> libvirt-java 0.4.6 and can reproduce your problem.
>>>>
>>>> This problem is fixed in libvirt 0.8.2. I didn't track it down to the
>>>> actual commit.
>>>>
>>>> So in order to fix your problem you'll have to update libvirt to 0.8.2
>>>> or identify the commit between 0.8.1 and 0.8.2 that fixes your problem
>>>> and backport it to 0.6.3.
>>>>
>>>> Matthias
>>>>
>>>
>>> I found the commit (30ec755ecb3350116d2851afa0de02e77dbe2c51) that
>>> avoids the problem in your original test code. I say 'avoid' instead
>>> of 'fix' because the actual fix is to call free on the domain objects
>>> after undefining them as I initially suggested. But when I tested this
>>> I did it wrong and jumped to false conclusions.
>>>
>>> Just to say it once again: Adding free calls solve this problem for me
>>> with libvirt 0.6.3.
>>>
>>> I attached a modified version of your test code that works for me.
>>>
>>
>> Which the latest code has.
>>
>> -- bk
>>
>>
>
>
>
> --
> Thanks & Regards
>
> Ravi Pawar
>




More information about the libvirt-users mailing list