Pārlūkot izejas kodu

YARN-8147. TestClientRMService#testGetApplications sporadically fails. Contributed by Jason Lowe

(cherry picked from commit 18844599aef42f79d2af4500aa2eee472dda95cb)
Eric E Payne 7 gadi atpakaļ
vecāks
revīzija
48023bda10

+ 9 - 5
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java

@@ -757,7 +757,7 @@ public class TestClientRMService {
   }
 
   @Test
-  public void testGetApplications() throws IOException, YarnException {
+  public void testGetApplications() throws Exception {
     /**
      * 1. Submit 3 applications alternately in two queues
      * 2. Test each of the filters
@@ -806,8 +806,12 @@ public class TestClientRMService {
       SubmitApplicationRequest submitRequest = mockSubmitAppRequest(
           appId, appNames[i], queues[i % queues.length],
           new HashSet<String>(tags.subList(0, i + 1)));
+      // make sure each app is submitted at a different time
+      Thread.sleep(1);
       rmService.submitApplication(submitRequest);
-      submitTimeMillis[i] = System.currentTimeMillis();
+      submitTimeMillis[i] = rmService.getApplicationReport(
+          GetApplicationReportRequest.newInstance(appId))
+          .getApplicationReport().getStartTime();
     }
 
     // Test different cases of ClientRMService#getApplications()
@@ -822,19 +826,19 @@ public class TestClientRMService {
     
     // Check start range
     request = GetApplicationsRequest.newInstance();
-    request.setStartRange(submitTimeMillis[0], System.currentTimeMillis());
+    request.setStartRange(submitTimeMillis[0] + 1, System.currentTimeMillis());
     
     // 2 applications are submitted after first timeMills
     assertEquals("Incorrect number of matching start range", 
         2, rmService.getApplications(request).getApplicationList().size());
     
     // 1 application is submitted after the second timeMills
-    request.setStartRange(submitTimeMillis[1], System.currentTimeMillis());
+    request.setStartRange(submitTimeMillis[1] + 1, System.currentTimeMillis());
     assertEquals("Incorrect number of matching start range", 
         1, rmService.getApplications(request).getApplicationList().size());
     
     // no application is submitted after the third timeMills
-    request.setStartRange(submitTimeMillis[2], System.currentTimeMillis());
+    request.setStartRange(submitTimeMillis[2] + 1, System.currentTimeMillis());
     assertEquals("Incorrect number of matching start range", 
         0, rmService.getApplications(request).getApplicationList().size());