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);
+      }
     }
   }
 

Reply via email to