2010/10/13 Matthias Bolte <matthias.bolte(a)googlemail.com>:
2010/10/12 Matthias Bolte <matthias.bolte(a)googlemail.com>:
> 2010/10/12 Ravi Pawar <ravifc(a)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.
Matthias