Liran Zelkha has uploaded a new change for review.

Change subject: core: Fix Dead Locks in 
Updatedisk_image_dynamic_by_disk_id_and_vm_id
......................................................................

core: Fix Dead Locks in Updatedisk_image_dynamic_by_disk_id_and_vm_id

Customer got dead locks in Updatedisk_image_dynamic_by_disk_id_and_vm_id.
This patch sorts by GUID, so that we eliminate the option for deadlocks.

Change-Id: Ieeba728a0a549e845b5355748e15b00d02381256
Bug-Url: https://bugzilla.redhat.com/1198674
Signed-off-by: lzel...@redhat.com <lzel...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDynamicDAODbFacadeImpl.java
1 file changed, 14 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/42403/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDynamicDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDynamicDAODbFacadeImpl.java
index 1fc0291..33ca3e0 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDynamicDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DiskImageDynamicDAODbFacadeImpl.java
@@ -2,7 +2,11 @@
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
 import javax.inject.Named;
 import javax.inject.Singleton;
@@ -96,7 +100,16 @@
 
     @Override
     public void 
updateAllDiskImageDynamicWithDiskIdByVmId(Collection<Pair<Guid, 
DiskImageDynamic>> diskImageDynamicForVm) {
+        List<Pair<Guid, DiskImageDynamic>> sortedDisks = new ArrayList<>();
+        sortedDisks.addAll(diskImageDynamicForVm);
+        Collections.sort(sortedDisks, new Comparator<Pair<Guid, 
DiskImageDynamic>>() {
+
+            @Override
+            public int compare(Pair<Guid, DiskImageDynamic> o1, Pair<Guid, 
DiskImageDynamic> o2) {
+                return o1.getFirst().compareTo(o2.getFirst());
+            }
+        });
         
getCallsHandler().executeStoredProcAsBatch("Updatedisk_image_dynamic_by_disk_id_and_vm_id",
-                diskImageDynamicForVm, getBatchImageGroupMapper());
+                sortedDisks, getBatchImageGroupMapper());
     }
 }


-- 
To view, visit https://gerrit.ovirt.org/42403
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ieeba728a0a549e845b5355748e15b00d02381256
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liran Zelkha <lzel...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to