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

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 -- Thanks & Regards Ravi Pawar

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

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

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. Matthias

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 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

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

that worked :-) Thanks, Ravi On Thu, Oct 21, 2010 at 9:04 PM, Matthias Bolte < matthias.bolte@googlemail.com> wrote:
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
-- Thanks & Regards Ravi Pawar
participants (3)
-
Bryan Kearney
-
Matthias Bolte
-
Ravi Pawar