Arik Hadas has uploaded a new change for review.

Change subject: core: process VMs that went down on separate thread
......................................................................

core: process VMs that went down on separate thread

In order to prevent the processing of VMs that went down from blocking
the VURTI thread, we'll do the processing in a separate thread.

Change-Id: I903992087c7d5975548746f45451fccbfd38b299
Signed-off-by: Arik Hadas <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
3 files changed, 15 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/28220/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
index aef0360..1d1fa95 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsEventListener.java
@@ -106,10 +106,18 @@
     }
 
     @Override
-    public void processOnVmStop(Guid vmId) {
-        Backend.getInstance().runInternalAction(VdcActionType.ProcessDownVm,
-                new IdParameters(vmId),
-                ExecutionHandler.createInternalJobContext());
+    public void processOnVmStop(List<Guid> vmIds) {
+        for (final Guid vmId : vmIds) {
+            log.infoFormat("cleanup VM {0} that went down", vmId);
+            ThreadPoolUtil.execute(new Runnable() {
+                @Override
+                public void run() {
+                    
Backend.getInstance().runInternalAction(VdcActionType.ProcessDownVm,
+                            new IdParameters(vmId),
+                            ExecutionHandler.createInternalJobContext());
+                }
+            });
+        }
     }
 
     @Override
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
index b80987a..4768d69 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/IVdsEventListener.java
@@ -23,7 +23,7 @@
 
     EventResult masterDomainNotOperational(Guid storageDomainId, Guid 
storagePoolId, boolean isReconstructToInactiveDomains, boolean 
canReconstructToCurrentMaster); // BLL
 
-    void processOnVmStop(Guid vmId);
+    void processOnVmStop(List<Guid> vmIds);
 
     boolean vdsUpEvent(VDS vds);
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
index 836de44..d834904 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
@@ -566,9 +566,8 @@
             }
 
             // process all vms that went down
-            for (Guid vm_guid : _vmsMovedToDown) {
-                getVdsEventListener().processOnVmStop(vm_guid);
-            }
+            getVdsEventListener().processOnVmStop(_vmsMovedToDown);
+
             for (Guid vm_guid : _vmsToRemoveFromAsync) {
                 ResourceManager.getInstance().RemoveAsyncRunningVm(vm_guid);
             }


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

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

Reply via email to