You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2022/11/28 20:51:41 UTC
[airavata] branch develop updated: Bug fix on client returing to pool
This is an automated email from the ASF dual-hosted git repository.
isjarana pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push:
new 226f0bdf6a Bug fix on client returing to pool
new 290804d129 Merge pull request #344 from isururanawaka/metaschedular
226f0bdf6a is described below
commit 226f0bdf6aed97d5327fe76c7b95e01d5dd34afb
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Mon Nov 28 15:47:41 2022 -0500
Bug fix on client returing to pool
---
.../engine/rescheduler/ProcessScannerImpl.java | 17 ++++++++++++-----
.../compute/resource/monitoring/job/MonitoringJob.java | 4 ++++
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ProcessScannerImpl.java b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ProcessScannerImpl.java
index 95e492d50f..f06c445317 100644
--- a/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ProcessScannerImpl.java
+++ b/modules/airavata-metascheduler/process-scheduler/src/main/java/org/apache/airavata/metascheduler/process/scheduling/engine/rescheduler/ProcessScannerImpl.java
@@ -14,13 +14,16 @@ import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import java.util.List;
public class ProcessScannerImpl implements ProcessScanner {
private static final Logger LOGGER = LoggerFactory.getLogger(ProcessScannerImpl.class);
- protected ThriftClientPool<RegistryService.Client> registryClientPool = Utils.getRegistryServiceClientPool();
+ protected ThriftClientPool<RegistryService.Client> registryClientPool;
+
+ public ProcessScannerImpl() {
+ this.registryClientPool = Utils.getRegistryServiceClientPool();
+ }
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
@@ -35,22 +38,26 @@ public class ProcessScannerImpl implements ProcessScanner {
ReScheduler reScheduler = (ReScheduler) Class.forName(reSchedulerPolicyClass).newInstance();
for (ProcessModel processModel : processModelList) {
- reScheduler.reschedule(processModel,state);
+ reScheduler.reschedule(processModel, state);
}
ProcessState ReQueuedState = ProcessState.REQUEUED;
List<ProcessModel> reQueuedProcessModels = client.getProcessListInState(ReQueuedState);
for (ProcessModel processModel : reQueuedProcessModels) {
- reScheduler.reschedule(processModel,state);
+ reScheduler.reschedule(processModel, state);
}
} catch (Exception ex) {
String msg = "Error occurred while executing job" + ex.getMessage();
LOGGER.error(msg, ex);
+ if (client != null) {
+ this.registryClientPool.returnBrokenResource(client);
+ }
+ client = null;
} finally {
if (client != null) {
- registryClientPool.returnResource(client);
+ this.registryClientPool.returnResource(client);
}
}
diff --git a/modules/computer-resource-monitoring-service/src/main/java/org/apache/airavata/compute/resource/monitoring/job/MonitoringJob.java b/modules/computer-resource-monitoring-service/src/main/java/org/apache/airavata/compute/resource/monitoring/job/MonitoringJob.java
index 1e5af3c0b5..31efef7230 100644
--- a/modules/computer-resource-monitoring-service/src/main/java/org/apache/airavata/compute/resource/monitoring/job/MonitoringJob.java
+++ b/modules/computer-resource-monitoring-service/src/main/java/org/apache/airavata/compute/resource/monitoring/job/MonitoringJob.java
@@ -58,6 +58,10 @@ public class MonitoringJob extends ComputeResourceMonitor implements Job {
} catch (Exception ex) {
String msg = "Error occurred while executing job" + ex.getMessage();
LOGGER.error(msg, ex);
+ if (client != null) {
+ registryClientPool.returnBrokenResource(client);
+ }
+ client = null;
} finally {
if (client != null) {
registryClientPool.returnResource(client);