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
