
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@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@redhat.com> wrote:
On 10/15/2010 10:05 AM, Matthias Bolte wrote:
2010/10/13 Matthias Bolte<matthias.bolte@googlemail.com>:
2010/10/12 Matthias Bolte<matthias.bolte@googlemail.com>:
2010/10/12 Ravi Pawar<ravifc@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