Selaa lähdekoodia

YARN-11744. Tackle flaky test testGetRunningContainersToKill (#7227) (#7241) Contributed by Cheng Pan.

Signed-off-by: Shilun Fan <slfan1989@apache.org>
Cheng Pan 4 kuukautta sitten
vanhempi
commit
0cd6ab5939

+ 6 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java

@@ -1229,12 +1229,16 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
         node.getContainersToKill());
   }
 
+  private static long LAST_TIMESTAMP = 0L;
   private static RMContainer newMockRMContainer(boolean isAMContainer,
       ExecutionType executionType, String name) {
+    long now = Time.now();
+    while (now <= LAST_TIMESTAMP) { now = Time.now(); }
+    LAST_TIMESTAMP = now;
     RMContainer container = mock(RMContainer.class);
     when(container.isAMContainer()).thenReturn(isAMContainer);
     when(container.getExecutionType()).thenReturn(executionType);
-    when(container.getCreationTime()).thenReturn(Time.now());
+    when(container.getCreationTime()).thenReturn(now);
     when(container.toString()).thenReturn(name);
     return container;
   }
@@ -1242,7 +1246,7 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
   /**
    * SchedulerNode mock to test launching containers.
    */
-  class MockSchedulerNode extends SchedulerNode {
+  static class MockSchedulerNode extends SchedulerNode {
     private final List<RMContainer> containers = new ArrayList<>();
 
     MockSchedulerNode() {