You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2016/10/21 05:03:43 UTC

lens git commit: LENS-1361 : Ignore DB failure while scheduler startup

Repository: lens
Updated Branches:
  refs/heads/master 54961853f -> f274e29d5


LENS-1361 : Ignore DB failure while scheduler startup


Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/f274e29d
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/f274e29d
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/f274e29d

Branch: refs/heads/master
Commit: f274e29d53998f482697bfd8c57a3841b1779abc
Parents: 5496185
Author: Lavkesh Lahngir <la...@linux.com>
Authored: Fri Oct 21 10:33:22 2016 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Fri Oct 21 10:33:22 2016 +0530

----------------------------------------------------------------------
 .../org/apache/lens/server/scheduler/SchedulerDAO.java   | 11 ++++++-----
 .../lens/server/scheduler/SchedulerServiceImpl.java      |  6 +++++-
 2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/f274e29d/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
index 69e81c1..5f472fc 100644
--- a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
+++ b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerDAO.java
@@ -60,8 +60,9 @@ public class SchedulerDAO {
       this.store.createJobInstanceTable();
       this.store.createJobInstanceRunTable();
     } catch (SQLException e) {
+      // If tables are not created, the DAO operations will fail at runtime.
+      // The APIs will fail with Internal Server Error.
       log.error("Error creating job tables", e);
-      throw new LensException("Error creating job tables ", e);
     } catch (ClassNotFoundException e) {
       log.error("No class found ", e);
       throw new LensException("No class found ", e);
@@ -239,7 +240,7 @@ public class SchedulerDAO {
       return store.getAllJobInstances(id.getHandleIdString());
     } catch (SQLException e) {
       log.error("Error while getting instances of a job with id {}", id.getHandleIdString(), e);
-      return null;
+      return new ArrayList<>();
     }
   }
 
@@ -258,7 +259,7 @@ public class SchedulerDAO {
       return store.getJobs(username, jobStates == null ? new SchedulerJobState[] {} : jobStates, startTime, endTime);
     } catch (SQLException e) {
       log.error("Error while getting jobs ", e);
-      return null;
+      return new ArrayList<>();
     }
   }
 
@@ -273,7 +274,7 @@ public class SchedulerDAO {
       return store.getJobsByName(jobName);
     } catch (SQLException e) {
       log.error("Error while getting jobs ", e);
-      return null;
+      return new ArrayList<>();
     }
   }
 
@@ -288,7 +289,7 @@ public class SchedulerDAO {
       return store.getInstanceRuns(states);
     } catch (SQLException e) {
       log.error("Error while getting jobs ", e);
-      return null;
+      return new ArrayList<>();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/f274e29d/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
index 00130d0..73277de 100644
--- a/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/scheduler/SchedulerServiceImpl.java
@@ -81,6 +81,7 @@ public class SchedulerServiceImpl extends BaseLensService implements SchedulerSe
   private AlarmService alarmService;
 
   private int maxJobsPerUser = LensConfConstants.DEFAULT_MAX_SCHEDULED_JOB_PER_USER;
+  private boolean healthy = true;
 
   /**
    * Instantiates a new scheduler service.
@@ -105,6 +106,7 @@ public class SchedulerServiceImpl extends BaseLensService implements SchedulerSe
       getEventService().addListenerForType(schedulerQueryEventListener, QueryEnded.class);
     } catch (LensException e) {
       log.error("Error Initialising Scheduler-service", e);
+      healthy = false;
     }
   }
 
@@ -126,7 +128,6 @@ public class SchedulerServiceImpl extends BaseLensService implements SchedulerSe
    */
   @Override
   public synchronized void start() {
-    super.start();
     List<SchedulerJobInstanceRun> instanceRuns = schedulerDAO
       .getInstanceRuns(SchedulerJobInstanceState.WAITING, SchedulerJobInstanceState.LAUNCHED,
         SchedulerJobInstanceState.RUNNING);
@@ -166,6 +167,9 @@ public class SchedulerServiceImpl extends BaseLensService implements SchedulerSe
         }
       }
     }
+    if (healthy) {
+      super.start();
+    }
   }
 
   /**