SLIDER-372 Chaos monkey service to not be created if interval ==0; 
RenewingAction also rejects 0 intervals


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/0c4fb57f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/0c4fb57f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/0c4fb57f

Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry
Commit: 0c4fb57fefb97cfc1ef99165758f25b931ad617b
Parents: 671830d
Author: Steve Loughran <ste...@apache.org>
Authored: Thu Aug 28 16:30:45 2014 +0100
Committer: Steve Loughran <ste...@apache.org>
Committed: Thu Aug 28 16:31:23 2014 +0100

----------------------------------------------------------------------
 .../apache/slider/server/appmaster/SliderAppMaster.java   | 10 +++++++++-
 .../slider/server/appmaster/actions/RenewingAction.java   |  1 +
 .../server/appmaster/monkey/ChaosMonkeyService.java       |  4 ++--
 .../agent/standalone/TestStandaloneAMMonkeyRestart.groovy |  4 ----
 4 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/0c4fb57f/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index 8e781f0..51c3b93 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -1817,6 +1817,11 @@ public class SliderAppMaster extends 
AbstractSliderLaunchedService
         InternalKeys.DEFAULT_CHAOS_MONKEY_INTERVAL_HOURS,
         InternalKeys.DEFAULT_CHAOS_MONKEY_INTERVAL_MINUTES,
         0);
+    if (monkeyInterval == 0) {
+      log.debug(
+          "Chaos monkey not configured with a time interval...not enabling");
+      return false;
+    }
     log.info("Adding Chaos Monkey scheduled every {} seconds ({} hours)",
         monkeyInterval, monkeyInterval/(60*60));
     monkey = new ChaosMonkeyService(metrics, actionQueues);
@@ -1838,8 +1843,11 @@ public class SliderAppMaster extends 
AbstractSliderLaunchedService
     // and schedule it
     if (monkey.schedule(monkeyInterval, TimeUnit.SECONDS)) {
       log.info("Chaos Monkey is running");
+      return true;
+    } else {
+      log.info("Chaos monkey not started");
+      return false;
     }
-    return true;
   }
   
   /**

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/0c4fb57f/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RenewingAction.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RenewingAction.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RenewingAction.java
index 40c1021..1164df9 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RenewingAction.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/actions/RenewingAction.java
@@ -64,6 +64,7 @@ public class RenewingAction<A extends AsyncAction> extends 
AsyncAction {
     // slightly superfluous as the super init above checks these 
values...retained
     // in case that code is ever changed
     Preconditions.checkArgument(action != null, "null actions");
+    Preconditions.checkArgument(interval > 0, "invalid interval: " + interval);
     this.action = action;
     this.interval = interval;
     this.timeUnit = timeUnit;

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/0c4fb57f/slider-core/src/main/java/org/apache/slider/server/appmaster/monkey/ChaosMonkeyService.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/monkey/ChaosMonkeyService.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/monkey/ChaosMonkeyService.java
index fa288af..f7b1eb7 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/monkey/ChaosMonkeyService.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/monkey/ChaosMonkeyService.java
@@ -94,10 +94,10 @@ public class ChaosMonkeyService extends AbstractService {
    * Schedule the monkey
    * @param time interval
    * @param timeUnit time unit
-   * @return true if it was scheduled (i.e. 1+ action)
+   * @return true if it was scheduled (i.e. 1+ action) and interval > 0
    */
   public boolean schedule(long time, TimeUnit timeUnit) {
-    if (!chaosEntries.isEmpty()) {
+    if (time > 0 && !chaosEntries.isEmpty()) {
       queues.schedule(getChaosAction(time, timeUnit));
       return true;
     } else {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/0c4fb57f/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAMMonkeyRestart.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAMMonkeyRestart.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAMMonkeyRestart.groovy
index 162bab0..5b17cfa 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAMMonkeyRestart.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAMMonkeyRestart.groovy
@@ -36,10 +36,6 @@ import org.apache.slider.core.exceptions.ErrorStrings
 import org.apache.slider.core.main.ServiceLauncher
 import org.junit.Test
 
-/**
- * kill a masterless AM and verify it shuts down. This test
- * also sets the retry count to 1 to stop recreation attempts
- */
 @CompileStatic
 @Slf4j
 

Reply via email to