From 1ebaff0b8669f26b1ff573c48afc38b6a3405f90 Mon Sep 17 00:00:00 2001 From: Xuan Date: Sun, 31 May 2015 00:24:08 -0700 Subject: [PATCH] Revert "YARN-2900. Application (Attempt and Container) Not Found in AHS results" This reverts commit 4fee8b320276bac86278e1ae0a3397592a78aa18. --- hadoop-yarn-project/CHANGES.txt | 3 - .../timeline/webapp/TimelineWebServices.java | 2 + .../TestApplicationHistoryClientService.java | 70 +------------------ .../yarn/server/webapp/WebServices.java | 27 +++---- 4 files changed, 13 insertions(+), 89 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 7653b2f90ed..28ca374e11c 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -562,9 +562,6 @@ Release 2.7.1 - UNRELEASED YARN-3686. CapacityScheduler should trim default_node_label_expression. (Sunil G via wangda) - YARN-2900. Application (Attempt and Container) Not Found in AHS results - in InternalServer Error (500). (Zhijie Shen and Mit Desai via xgong) - Release 2.7.0 - 2015-04-20 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/webapp/TimelineWebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/webapp/TimelineWebServices.java index 40e9fede85e..90f4d396135 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/webapp/TimelineWebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/webapp/TimelineWebServices.java @@ -47,6 +47,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.util.StringUtils; +import org.apache.hadoop.util.VersionInfo; import org.apache.hadoop.yarn.api.records.timeline.TimelineDomain; import org.apache.hadoop.yarn.api.records.timeline.TimelineDomains; import org.apache.hadoop.yarn.api.records.timeline.TimelineEntities; @@ -60,6 +61,7 @@ import org.apache.hadoop.yarn.server.timeline.TimelineDataManager; import org.apache.hadoop.yarn.server.timeline.TimelineReader.Field; import org.apache.hadoop.yarn.api.records.timeline.TimelineAbout; +import org.apache.hadoop.yarn.util.YarnVersionInfo; import org.apache.hadoop.yarn.util.timeline.TimelineUtils; import org.apache.hadoop.yarn.webapp.BadRequestException; import org.apache.hadoop.yarn.webapp.ForbiddenException; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java index d04903cbc29..764ecb953a4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/test/java/org/apache/hadoop/yarn/server/applicationhistoryservice/TestApplicationHistoryClientService.java @@ -41,9 +41,6 @@ import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.ContainerReport; import org.apache.hadoop.yarn.conf.YarnConfiguration; -import org.apache.hadoop.yarn.exceptions.ApplicationAttemptNotFoundException; -import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException; -import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException; import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.server.security.ApplicationACLsManager; import org.apache.hadoop.yarn.server.timeline.TimelineDataManager; @@ -57,13 +54,12 @@ public class TestApplicationHistoryClientService { private static ApplicationHistoryClientService clientService; private static TimelineDataManager dataManager; - private final static int MAX_APPS = 2; @BeforeClass public static void setup() throws Exception { Configuration conf = new YarnConfiguration(); TimelineStore store = - TestApplicationHistoryManagerOnTimelineStore.createStore(MAX_APPS); + TestApplicationHistoryManagerOnTimelineStore.createStore(2); TimelineACLsManager aclsManager = new TimelineACLsManager(conf); dataManager = new TimelineDataManager(store, aclsManager); @@ -75,70 +71,6 @@ public static void setup() throws Exception { clientService = new ApplicationHistoryClientService(historyManager); } - @Test - public void testApplicationNotFound() throws IOException, YarnException { - ApplicationId appId = null; - appId = ApplicationId.newInstance(0, MAX_APPS + 1); - GetApplicationReportRequest request = - GetApplicationReportRequest.newInstance(appId); - try { - @SuppressWarnings("unused") - GetApplicationReportResponse response = - clientService.getApplicationReport(request); - Assert.fail("Exception should have been thrown before we reach here."); - } catch (ApplicationNotFoundException e) { - //This exception is expected. - Assert.assertTrue(e.getMessage().contains( - "doesn't exist in the timeline store")); - } catch (Exception e) { - Assert.fail("Undesired exception caught"); - } - } - - @Test - public void testApplicationAttemptNotFound() throws IOException, YarnException { - ApplicationId appId = ApplicationId.newInstance(0, 1); - ApplicationAttemptId appAttemptId = - ApplicationAttemptId.newInstance(appId, MAX_APPS + 1); - GetApplicationAttemptReportRequest request = - GetApplicationAttemptReportRequest.newInstance(appAttemptId); - try { - @SuppressWarnings("unused") - GetApplicationAttemptReportResponse response = - clientService.getApplicationAttemptReport(request); - Assert.fail("Exception should have been thrown before we reach here."); - } catch (ApplicationAttemptNotFoundException e) { - //This Exception is expected - System.out.println(e.getMessage()); - Assert.assertTrue(e.getMessage().contains( - "doesn't exist in the timeline store")); - } catch (Exception e) { - Assert.fail("Undesired exception caught"); - } - } - - @Test - public void testContainerNotFound() throws IOException, YarnException { - ApplicationId appId = ApplicationId.newInstance(0, 1); - ApplicationAttemptId appAttemptId = - ApplicationAttemptId.newInstance(appId, 1); - ContainerId containerId = ContainerId.newContainerId(appAttemptId, - MAX_APPS + 1); - GetContainerReportRequest request = - GetContainerReportRequest.newInstance(containerId); - try { - @SuppressWarnings("unused") - GetContainerReportResponse response = - clientService.getContainerReport(request); - } catch (ContainerNotFoundException e) { - //This exception is expected - Assert.assertTrue(e.getMessage().contains( - "doesn't exist in the timeline store")); - } catch (Exception e) { - Assert.fail("Undesired exception caught"); - } - } - @Test public void testApplicationReport() throws IOException, YarnException { ApplicationId appId = null; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebServices.java index ae27d452ab2..8404719a4ba 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/webapp/WebServices.java @@ -47,9 +47,6 @@ import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest; import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest; import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest; -import org.apache.hadoop.yarn.exceptions.ApplicationAttemptNotFoundException; -import org.apache.hadoop.yarn.exceptions.ApplicationNotFoundException; -import org.apache.hadoop.yarn.exceptions.ContainerNotFoundException; import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptInfo; import org.apache.hadoop.yarn.server.webapp.dao.AppAttemptsInfo; import org.apache.hadoop.yarn.server.webapp.dao.AppInfo; @@ -480,21 +477,17 @@ protected static UserGroupInformation getUser(HttpServletRequest req) { private static void rewrapAndThrowException(Exception e) { if (e instanceof UndeclaredThrowableException) { - rewrapAndThrowThrowable(e.getCause()); + if (e.getCause() instanceof AuthorizationException) { + throw new ForbiddenException(e.getCause()); + } else { + throw new WebApplicationException(e.getCause()); + } } else { - rewrapAndThrowThrowable(e); - } - } - - private static void rewrapAndThrowThrowable(Throwable t) { - if (t instanceof AuthorizationException) { - throw new ForbiddenException(t); - } if (t instanceof ApplicationNotFoundException || - t instanceof ApplicationAttemptNotFoundException || - t instanceof ContainerNotFoundException) { - throw new NotFoundException(t); - } else { - throw new WebApplicationException(t); + if (e instanceof AuthorizationException) { + throw new ForbiddenException(e); + } else { + throw new WebApplicationException(e); + } } }