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);