Summary: KVM - double migration can fail

Detail: Undefine VM after migration. Lingering domain definitions cause
migrations back to the original host to fail, since domain already exists.

BUG-ID: CLOUDSTACK-2640
Bugfix-for: 4.1.0,4.2.0
Signed-off-by: Marcus Sorensen <mar...@betterservers.com> 1369285950 -0600


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/795fd803
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/795fd803
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/795fd803

Branch: refs/heads/rbd-snap-clone
Commit: 795fd803da3eadee0fae1a13d0e97ae57b239657
Parents: 4786420
Author: Marcus Sorensen <mar...@betterservers.com>
Authored: Wed May 22 23:12:30 2013 -0600
Committer: Marcus Sorensen <mar...@betterservers.com>
Committed: Wed May 22 23:12:30 2013 -0600

----------------------------------------------------------------------
 .../kvm/resource/LibvirtComputingResource.java     |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/795fd803/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index b31fb5d..0903855 100755
--- 
a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ 
b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -2728,6 +2728,9 @@ ServerResource {
         } finally {
             try {
                 if (dm != null) {
+                    if (dm.isPersistent() == 1) {
+                        dm.undefine();
+                    }
                     dm.free();
                 }
                 if (dconn != null) {

Reply via email to