Repository: incubator-slider Updated Branches: refs/heads/feature/SLIDER-151_REST_API bfe71dc05 -> d1820f20e
SLIDER-313. Slider AM fails to restart on kill, post newly created application. Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/2f8bda2f Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/2f8bda2f Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/2f8bda2f Branch: refs/heads/feature/SLIDER-151_REST_API Commit: 2f8bda2f3da4e8ddc37710e66d29d36652754a0e Parents: 9b20e47 Author: Sumit Mohanty <smoha...@hortonworks.com> Authored: Wed Aug 13 14:23:49 2014 -0700 Committer: Sumit Mohanty <smoha...@hortonworks.com> Committed: Wed Aug 13 14:23:49 2014 -0700 ---------------------------------------------------------------------- .../providers/agent/AgentProviderService.java | 27 ++++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/2f8bda2f/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java index 0c57b79..43ee7a6 100644 --- a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java +++ b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java @@ -28,7 +28,6 @@ import org.apache.hadoop.yarn.api.records.Container; import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.LocalResource; import org.apache.hadoop.yarn.api.records.LocalResourceType; -import org.apache.hadoop.yarn.api.records.Priority; import org.apache.slider.api.ClusterDescription; import org.apache.slider.api.ClusterDescriptionKeys; import org.apache.slider.api.ClusterNode; @@ -63,6 +62,7 @@ import org.apache.slider.providers.agent.application.metadata.Metainfo; import org.apache.slider.providers.agent.application.metadata.OSPackage; import org.apache.slider.providers.agent.application.metadata.OSSpecific; import org.apache.slider.server.appmaster.actions.ProviderReportedContainerLoss; +import org.apache.slider.server.appmaster.state.ContainerPriority; import org.apache.slider.server.appmaster.state.StateAccessForProviders; import org.apache.slider.server.appmaster.web.rest.agent.AgentCommandType; import org.apache.slider.server.appmaster.web.rest.agent.AgentRestOperations; @@ -339,16 +339,21 @@ public class AgentProviderService extends AbstractProviderService implements String applicationId, Map<Integer, ProviderRole> providerRoleMap) { for (Container container : liveContainers) { // get the role name and label - Priority priority = container.getPriority(); - String roleName = providerRoleMap.get(priority.getPriority()).name; - String label = getContainerLabel(container, roleName); - log.info("Rebuilding in-memory: container {} in role {} in cluster {}", - container.getId().toString(), roleName, applicationId); - getComponentStatuses() - .put( - label, - new ComponentInstanceState(roleName, container.getId(), - applicationId)); + ProviderRole role = providerRoleMap.get(ContainerPriority + .extractRole(container)); + if (role != null) { + String roleName = role.name; + String label = getContainerLabel(container, roleName); + log.info("Rebuilding in-memory: container {} in role {} in cluster {}", + container.getId(), roleName, applicationId); + getComponentStatuses().put( + label, + new ComponentInstanceState(roleName, container.getId(), + applicationId)); + } else { + log.warn("Role not found for container {} in cluster {}", + container.getId(), applicationId); + } } }