You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/09/28 15:50:30 UTC

incubator-slider git commit: SLIDER-943 Container Escalation failing: update outstanding request priority

Repository: incubator-slider
Updated Branches:
  refs/heads/develop 4083cffea -> 733bd5632


SLIDER-943 Container Escalation failing: update outstanding request priority


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

Branch: refs/heads/develop
Commit: 733bd5632c10f1a470ec63f0147ef3b0076dc2e6
Parents: 4083cff
Author: Steve Loughran <st...@apache.org>
Authored: Mon Sep 28 15:43:45 2015 +0200
Committer: Steve Loughran <st...@apache.org>
Committed: Mon Sep 28 15:43:45 2015 +0200

----------------------------------------------------------------------
 .../apache/slider/common/tools/SliderUtils.java | 24 ++++++++++++++++++++
 .../appmaster/state/OutstandingRequest.java     | 11 +++++++--
 2 files changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/733bd563/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
index 643c823..4ff8d11 100644
--- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.yarn.api.records.ApplicationReport;
 import org.apache.hadoop.yarn.api.records.Container;
 import org.apache.hadoop.yarn.api.records.LocalResource;
 import org.apache.hadoop.yarn.api.records.YarnApplicationState;
+import org.apache.hadoop.yarn.client.api.AMRMClient;
 import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.slider.Slider;
 import org.apache.slider.api.InternalKeys;
@@ -2366,4 +2367,27 @@ public final class SliderUtils {
   public static Map<String, String> getSystemEnv() {
     return System.getenv();
   }
+
+  public static String requestToString(AMRMClient.ContainerRequest request) {
+    StringBuffer buffer = new StringBuffer(request.toString());
+    buffer.append("; ");
+    buffer.append("relaxLocality=").append(request.getRelaxLocality()).append("; ");
+    String labels = request.getNodeLabelExpression();
+    if (labels != null) {
+      buffer.append("nodeLabels=").append(labels).append("; ");
+    }
+    List<String> nodes = request.getNodes();
+    if (nodes != null) {
+      buffer.append("Nodes = [")
+          .append(join(nodes, ", ", false))
+          .append("]; ");
+    }
+    List<String> racks = request.getRacks();
+    if (racks != null) {
+      buffer.append("racks = [")
+          .append(join(racks, ", ", false))
+          .append("]; ");
+    }
+    return buffer.toString();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/733bd563/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
index e269ccd..f5689dd 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/OutstandingRequest.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.yarn.api.records.Priority;
 import org.apache.hadoop.yarn.api.records.Resource;
 import org.apache.hadoop.yarn.client.api.AMRMClient;
 import org.apache.hadoop.yarn.client.api.InvalidContainerRequestException;
+import org.apache.slider.common.tools.SliderUtils;
 import org.apache.slider.server.appmaster.operations.CancelSingleRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -248,6 +249,9 @@ public final class OutstandingRequest {
     // it is tagged as unlocated because it needs to go into a different
     // set of outstanding requests from the strict placements
     Priority pri = ContainerPriority.createPriority(roleId, false);
+    // update the field
+    priority = pri.getPriority();
+
     String[] nodes;
     List<String> issuedRequestNodes = issuedRequest.getNodes();
     if (label == null && issuedRequestNodes != null) {
@@ -338,15 +342,18 @@ public final class OutstandingRequest {
 
   @Override
   public String toString() {
+    int requestRoleId = ContainerPriority.extractRole(getPriority());
+    boolean requestHasLocation = ContainerPriority.hasLocation(getPriority());
     final StringBuilder sb = new StringBuilder("OutstandingRequest{");
-    sb.append("roleId=").append(roleId);
+    sb.append("roleId=").append(this.roleId);
     sb.append(", node=").append(node);
     sb.append(", hostname='").append(hostname).append('\'');
-    sb.append(", issuedRequest=").append(issuedRequest);
+    sb.append(", hasLocation=").append(requestHasLocation);
     sb.append(", requestedTimeMillis=").append(requestedTimeMillis);
     sb.append(", mayEscalate=").append(mayEscalate);
     sb.append(", escalated=").append(escalated);
     sb.append(", escalationTimeoutMillis=").append(escalationTimeoutMillis);
+    sb.append(", issuedRequest=").append(SliderUtils.requestToString(issuedRequest));
     sb.append('}');
     return sb.toString();
   }