You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-commits@hadoop.apache.org by su...@apache.org on 2013/02/21 00:09:41 UTC
svn commit: r1448462 - in
/hadoop/common/branches/branch-trunk-win/hadoop-yarn-project: ./
hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/
hadoop-yarn/hadoop-yarn-serv...
Author: suresh
Date: Wed Feb 20 23:09:40 2013
New Revision: 1448462
URL: http://svn.apache.org/r1448462
Log:
Merging trunk changes
Modified:
hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java
Modified: hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/CHANGES.txt?rev=1448462&r1=1448461&r2=1448462&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/CHANGES.txt Wed Feb 20 23:09:40 2013
@@ -316,6 +316,9 @@ Release 0.23.7 - UNRELEASED
YARN-249. Capacity Scheduler web page should show list of active users per
queue like it used to (in 1.x) (Ravi Prakash via tgraves)
+ YARN-236. RM should point tracking URL to RM web page when app fails to
+ start (Jason Lowe via jeagles)
+
OPTIMIZATIONS
YARN-357. App submission should not be synchronized (daryn)
@@ -331,6 +334,9 @@ Release 0.23.7 - UNRELEASED
YARN-362. Unexpected extra results when using webUI table search (Ravi
Prakash via jlowe)
+ YARN-400. RM can return null application resource usage report leading to
+ NPE in client (Jason Lowe via tgraves)
+
Release 0.23.6 - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java?rev=1448462&r1=1448461&r2=1448462&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java (original)
+++ hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/RMAppImpl.java Wed Feb 20 23:09:40 2013
@@ -406,7 +406,8 @@ public class RMAppImpl implements RMApp,
String host = UNAVAILABLE;
String origTrackingUrl = UNAVAILABLE;
int rpcPort = -1;
- ApplicationResourceUsageReport appUsageReport = null;
+ ApplicationResourceUsageReport appUsageReport =
+ DUMMY_APPLICATION_RESOURCE_USAGE_REPORT;
FinalApplicationStatus finishState = getFinalApplicationStatus();
String diags = UNAVAILABLE;
if (allowAccess) {
@@ -418,18 +419,17 @@ public class RMAppImpl implements RMApp,
host = this.currentAttempt.getHost();
rpcPort = this.currentAttempt.getRpcPort();
appUsageReport = currentAttempt.getApplicationResourceUsageReport();
- } else {
- currentApplicationAttemptId =
- BuilderUtils.newApplicationAttemptId(this.applicationId,
- DUMMY_APPLICATION_ATTEMPT_NUMBER);
}
+
diags = this.diagnostics.toString();
- } else {
- appUsageReport = DUMMY_APPLICATION_RESOURCE_USAGE_REPORT;
+ }
+
+ if (currentApplicationAttemptId == null) {
currentApplicationAttemptId =
BuilderUtils.newApplicationAttemptId(this.applicationId,
DUMMY_APPLICATION_ATTEMPT_NUMBER);
}
+
return BuilderUtils.newApplicationReport(this.applicationId,
currentApplicationAttemptId, this.user, this.queue,
this.name, host, rpcPort, clientToken,
Modified: hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java?rev=1448462&r1=1448461&r2=1448462&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java (original)
+++ hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java Wed Feb 20 23:09:40 2013
@@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFac
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.MockApps;
import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.ApplicationReport;
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.api.records.impl.pb.ApplicationSubmissionContextPBImpl;
@@ -616,4 +617,12 @@ public class TestRMAppTransitions {
assertTimesAtFinish(application);
assertAppState(RMAppState.KILLED, application);
}
+
+ @Test
+ public void testGetAppReport() {
+ RMApp app = createNewTestApp(null);
+ assertAppState(RMAppState.NEW, app);
+ ApplicationReport report = app.createAndGetApplicationReport(true);
+ Assert.assertNotNull(report.getApplicationResourceUsageReport());
+ }
}
Modified: hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java?rev=1448462&r1=1448461&r2=1448462&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java (original)
+++ hadoop/common/branches/branch-trunk-win/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/WebAppProxyServlet.java Wed Feb 20 23:09:40 2013
@@ -66,6 +66,7 @@ public class WebAppProxyServlet extends
public static final String PROXY_USER_COOKIE_NAME = "proxy-user";
private final List<TrackingUriPlugin> trackingUriPlugins;
+ private final String rmAppPageUrlBase;
private static class _ implements Hamlet._ {
//Empty
@@ -91,6 +92,8 @@ public class WebAppProxyServlet extends
this.trackingUriPlugins =
conf.getInstances(YarnConfiguration.YARN_TRACKING_URL_GENERATOR,
TrackingUriPlugin.class);
+ this.rmAppPageUrlBase = StringHelper.pjoin(
+ YarnConfiguration.getRMWebAppURL(conf), "cluster", "app");
}
/**
@@ -291,25 +294,10 @@ public class WebAppProxyServlet extends
if (original != null) {
trackingUri = ProxyUriUtils.getUriFromAMUrl(original);
}
+ // fallback to ResourceManager's app page if no tracking URI provided
if(original == null || original.equals("N/A")) {
- String message;
- switch(applicationReport.getFinalApplicationStatus()) {
- case FAILED:
- case KILLED:
- case SUCCEEDED:
- message =
- "The requested application exited before setting a tracking URL.";
- break;
- case UNDEFINED:
- message = "The requested application does not appear to be running "
- +"yet, and has not set a tracking URL.";
- break;
- default:
- //This should never happen, but just to be safe
- message = "The requested application has not set a tracking URL.";
- break;
- }
- notFound(resp, message);
+ resp.sendRedirect(resp.encodeRedirectURL(
+ StringHelper.pjoin(rmAppPageUrlBase, id.toString())));
return;
}