Repository: incubator-slider Updated Branches: refs/heads/develop 313f9eea7 -> 5b7262c1d
SLIDER-1198 container.state is set to STATE_LIVE for containers belonging to apps which have been killed Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/5b7262c1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/5b7262c1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/5b7262c1 Branch: refs/heads/develop Commit: 5b7262c1d2b94949357e2adf7814f24fcbdfb1c4 Parents: 313f9ee Author: Gour Saha <gourks...@apache.org> Authored: Wed Feb 8 22:32:47 2017 -0800 Committer: Gour Saha <gourks...@apache.org> Committed: Wed Feb 8 22:32:47 2017 -0800 ---------------------------------------------------------------------- .../org/apache/slider/server/appmaster/SliderAppMaster.java | 7 ++++--- .../org/apache/slider/server/appmaster/state/AppState.java | 8 ++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/5b7262c1/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 8e45fe4..c6f99c6 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 @@ -1606,7 +1606,7 @@ public class SliderAppMaster extends AbstractSliderLaunchedService launchService.stop(); //now release all containers - releaseAllContainers(); + releaseAllContainers(finalMessage); // When the application completes, it should send a finish application // signal to the RM @@ -1980,7 +1980,7 @@ public class SliderAppMaster extends AbstractSliderLaunchedService /** * Shutdown operation: release all containers */ - private void releaseAllContainers() { + private void releaseAllContainers(String releaseMessage) { if (providerService instanceof AgentProviderService) { log.info("Setting stopInitiated flag to true"); AgentProviderService agentProviderService = (AgentProviderService) providerService; @@ -1996,7 +1996,8 @@ public class SliderAppMaster extends AbstractSliderLaunchedService } catch (InterruptedException e) { log.info("Sleep for container release interrupted"); } finally { - List<AbstractRMOperation> operations = appState.releaseAllContainers(); + List<AbstractRMOperation> operations = appState + .releaseAllContainers(releaseMessage); providerRMOperationHandler.execute(operations); // now apply the operations execute(operations); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/5b7262c1/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java index 0ca9f78..766db30 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java @@ -2341,7 +2341,8 @@ public class AppState { * Release all containers. * @return a list of operations to execute */ - public synchronized List<AbstractRMOperation> releaseAllContainers() { + public synchronized List<AbstractRMOperation> releaseAllContainers( + String releaseMessage) { Collection<RoleInstance> targets = cloneOwnedContainerList(); log.info("Releasing {} containers", targets.size()); @@ -2357,11 +2358,14 @@ public class AppState { if (!instance.released) { String url = getLogsURLForContainer(possible); // Add the completed container log link (overwrites log link for live - // container) + // container). Mark container stopped as well. ContainerInformation ci = getApplicationDiagnostics() .getContainer(id.toString()); if (ci != null) { ci.logLink = url; + ci.state = StateValues.STATE_STOPPED; + ci.exitCode = ContainerExitStatus.SUCCESS; + ci.diagnostics = releaseMessage; } log.info("Releasing container. Log: " + url); try {