Index: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFSAppStarvation.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFSAppStarvation.java (revision 79e37dc6dba44e7d1d913593304db7a8516056aa) +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestFSAppStarvation.java (revision 8fa6a1e195de859ce9928ae96f6c6742aa19bc20) @@ -62,6 +62,9 @@ ALLOC_FILE.getAbsolutePath()); conf.setBoolean(FairSchedulerConfiguration.PREEMPTION, true); conf.setFloat(FairSchedulerConfiguration.PREEMPTION_THRESHOLD, 0f); + // This effectively disables the update thread since we call update + // explicitly on the main thread + conf.setLong(FairSchedulerConfiguration.UPDATE_INTERVAL_MS, 100000); } @After @@ -124,16 +127,17 @@ // Wait for apps to be processed by MockPreemptionThread for (int i = 0; i < 6000; ++i) { - if(preemptionThread.totalAppsAdded() > - preemptionThread.uniqueAppsAdded()) { + if(preemptionThread.totalAppsAdded() >= + preemptionThread.uniqueAppsAdded() * 2) { break; } Thread.sleep(10); } - assertTrue("Each app is marked as starved exactly once", - preemptionThread.totalAppsAdded() > - preemptionThread.uniqueAppsAdded()); + assertEquals("Each app should be marked as starved once" + + " at each scheduler update above", + preemptionThread.totalAppsAdded(), + preemptionThread.uniqueAppsAdded() * 2); } /*