Updated Branches: refs/heads/trunk 70dd8ae24 -> 144755b2b
AMBARI-4282. Execption in log for Rolling Restart Command. (swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/144755b2 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/144755b2 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/144755b2 Branch: refs/heads/trunk Commit: 144755b2bbc72e7268f20b4594a011b624efa89b Parents: 70dd8ae Author: Siddharth Wagle <[email protected]> Authored: Mon Jan 13 16:08:01 2014 -0800 Committer: Siddharth Wagle <[email protected]> Committed: Mon Jan 13 16:08:01 2014 -0800 ---------------------------------------------------------------------- .../server/scheduler/AbstractLinearExecutionJob.java | 11 +++++++---- .../server/scheduler/ExecutionScheduleManager.java | 5 +++++ .../server/scheduler/ExecutionScheduleManagerTest.java | 3 +++ 3 files changed, 15 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java index a68910a..7570a69 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/AbstractLinearExecutionJob.java @@ -88,15 +88,18 @@ public abstract class AbstractLinearExecutionJob implements ExecutionJob { LOG.debug("Finished linear job: " + jobKey); JobDataMap jobDataMap = context.getMergedJobDataMap(); + String nextJobName = jobDataMap.getString(NEXT_EXECUTION_JOB_NAME_KEY); String nextJobGroup = jobDataMap.getString(NEXT_EXECUTION_JOB_GROUP_KEY); - Integer separationSeconds = jobDataMap.getIntegerFromString( - (NEXT_EXECUTION_SEPARATION_SECONDS)); - if (separationSeconds == null) { - separationSeconds = 0; + if (nextJobName == null || nextJobName.isEmpty()) { + LOG.debug("End of linear job chain. Returning with success."); + return; } + Integer separationSeconds = jobDataMap.getIntegerFromString( + (NEXT_EXECUTION_SEPARATION_SECONDS)); + // Create trigger for next job execution Trigger trigger = newTrigger() .forJob(nextJobName, nextJobGroup) http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java index a2d0996..7949952 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/scheduler/ExecutionScheduleManager.java @@ -288,6 +288,9 @@ public class ExecutionScheduleManager { String jobName = getJobName(requestExecution.getId(), batchRequest.getOrderId()); + Integer separationSeconds = requestExecution.getBatch() + .getBatchSettings().getBatchSeparationInSeconds(); + // Create Job and store properties to get next batch request details jobDetail = newJob(BatchRequestJob.class) .withIdentity(jobName, ExecutionJob.LINEAR_EXECUTION_JOB_GROUP) @@ -300,6 +303,8 @@ public class ExecutionScheduleManager { batchRequest.getOrderId()) .usingJobData(BatchRequestJob.BATCH_REQUEST_CLUSTER_NAME_KEY, requestExecution.getClusterName()) + .usingJobData(BatchRequestJob.NEXT_EXECUTION_SEPARATION_SECONDS, + separationSeconds != null ? separationSeconds : 0) .storeDurably() .build(); http://git-wip-us.apache.org/repos/asf/ambari/blob/144755b2/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java index 1000bf9..19105e0 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/scheduler/ExecutionScheduleManagerTest.java @@ -304,6 +304,9 @@ public class ExecutionScheduleManagerTest { Assert.assertEquals(1, triggers.size()); assertThat(triggers.get(0), instanceOf(SimpleTrigger.class)); + Assert.assertNull(jobDetail2.getJobDataMap().getString( + ExecutionJob.NEXT_EXECUTION_JOB_NAME_KEY)); + int waitCount = 0; while (scheduler.getCurrentlyExecutingJobs().size() != 0 && waitCount < 10) { Thread.sleep(100);
