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();
+ }
}
/**