From 7393020cb35031a406583015591ceedeb6c97bd4 Mon Sep 17 00:00:00 2001 From: Eric E Payne Date: Thu, 12 Apr 2018 17:53:57 +0000 Subject: [PATCH] YARN-8147. TestClientRMService#testGetApplications sporadically fails. Contributed by Jason Lowe (cherry picked from commit 18844599aef42f79d2af4500aa2eee472dda95cb) --- .../resourcemanager/TestClientRMService.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java index 6946f3cd2e7..091bcd9c58c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestClientRMService.java +++ b/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(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());