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 <[email protected]> Authored: Fri Oct 21 10:33:22 2016 +0530 Committer: Amareshwari Sriramadasu <[email protected]> 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(); + } } /**
