From ef048cc5e1dde1a21806d2e22528b4b7c82df619 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Tue, 16 Jan 2018 10:06:10 +0000
Subject: [PATCH] Task #11385: JIRA LSSS-291: use supervisor to restart service
 when no active session avaible on qpid broker

---
 .../lib/ingestjobmanagementserver.py                     | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py b/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py
index 6fda2ff9e08..77b2743f010 100644
--- a/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py
+++ b/LTA/LTAIngest/LTAIngestServer/LTAIngestAdminServer/lib/ingestjobmanagementserver.py
@@ -759,12 +759,15 @@ class IngestJobManager:
         try:
             with self.__jobs_for_transfer_queue_peeker:
                 num_scheduled = self.__jobs_for_transfer_queue_peeker.nr_of_messages_in_queue(0.01)
-                if num_scheduled <= 3:
+                if num_scheduled <= 1:
                     scheduled_jads = self.getJobAdminDicts(status=JobScheduled)
-                    return len(scheduled_jads) <= 3
+                    return len(scheduled_jads) <= 1
                 return False
         except Exception as e:
-            logger.error('canProduceNextJob: %s', e)
+            logger.exception('canProduceNextJob: %s', e)
+            if 'No active session' in str(e):
+                logger.fatal('cannot connect to qpid broker. bailing out...')
+                exit(1) # when running under supervisord, it will be restarted and the qpid connection usually works again.
         return True
 
     def produceNextJobsIfPossible(self):
-- 
GitLab