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 <[email protected]> Authored: Mon Sep 28 15:43:45 2015 +0200 Committer: Steve Loughran <[email protected]> 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(); }
