Forráskód Böngészése

Revert "YARN-2900. Application (Attempt and Container) Not Found in AHS results"

This reverts commit 06f8e9cabaf3c05cd7d16215cff47265ea773f39.
Xuan 10 éve
szülő
commit
da05361c3b

+ 0 - 3
hadoop-yarn-project/CHANGES.txt

@@ -606,9 +606,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

+ 2 - 0
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.Log;
 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.NameValuePair;
 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;

+ 1 - 69
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.ApplicationReport;
 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 class TestApplicationHistoryClientService {
     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;

+ 10 - 17
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.GetApplicationReportRequest;
 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 @@ public class WebServices {
 
   private static void rewrapAndThrowException(Exception e) {
     if (e instanceof UndeclaredThrowableException) {
-      rewrapAndThrowThrowable(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);
+      if (e.getCause() instanceof AuthorizationException) {
+        throw new ForbiddenException(e.getCause());
+      } else {
+        throw new WebApplicationException(e.getCause());
+      }
     } else {
-      throw new WebApplicationException(t);
+      if (e instanceof AuthorizationException) {
+        throw new ForbiddenException(e);
+      } else {
+        throw new WebApplicationException(e);
+      }
     }
   }