Maor Lipchuk has uploaded a new change for review.

Change subject: core: Live snapshot should order child commands
......................................................................

core: Live snapshot should order child commands

End method of live snapshot should order the list of the child
commands by image id to avoid dead lock with UpdateRunTimeInfo when updating
disk image dynamic.

Change-Id: I2999a2f9fb042a70eaf34e17668877040d57a068
Signed-off-by: Maor Lipchuk <[email protected]>
Bug-Url: https://bugzilla.redhat.com/909937
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
2 files changed, 20 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/77/13577/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
index 1441dec..d63baca 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
@@ -200,6 +201,20 @@
         }
     }
 
+    @Override
+    protected List<VdcActionParametersBase> getParametersForChildCommand() {
+        List<VdcActionParametersBase> sortedList = 
getParameters().getImagesParameters();
+        Collections.sort(sortedList, new Comparator<VdcActionParametersBase>() 
{
+            @Override
+            public int compare(VdcActionParametersBase o1, 
VdcActionParametersBase o2) {
+                return ((ImagesActionsParametersBase) 
o1).getDestinationImageId()
+                        .compareTo(((ImagesActionsParametersBase) 
o2).getDestinationImageId());
+            }
+        });
+
+        return sortedList;
+    }
+
     /**
      * returns true if the VM is down because of an error, otherwise false
      */
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
index dea3cdb..50c9179 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
@@ -183,7 +183,7 @@
     }
 
     protected void endActionOnDisks() {
-        for (VdcActionParametersBase p : 
getParameters().getImagesParameters()) {
+        for (VdcActionParametersBase p : getParametersForChildCommand()) {
             if (overrideChildCommandSuccess()) {
                 p.setTaskGroupSuccess(getParameters().getTaskGroupSuccess());
             }
@@ -193,6 +193,10 @@
         }
     }
 
+    protected List<VdcActionParametersBase> getParametersForChildCommand() {
+        return getParameters().getImagesParameters();
+    }
+
     protected void unlockVm() {
         if (getVm() != null) {
             if (getVm().getStatus() == VMStatus.ImageLocked) {


--
To view, visit http://gerrit.ovirt.org/13577
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2999a2f9fb042a70eaf34e17668877040d57a068
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to