Repository: incubator-slider Updated Branches: refs/heads/develop 671830d70 -> 0c4fb57fe
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/develop 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