diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java index c1b1c52edef..1c2b99d2dc3 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java @@ -24,6 +24,8 @@ import java.util.Collections; import java.util.List; +import java.util.concurrent.TimeoutException; +import org.apache.hadoop.test.GenericTestUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse; @@ -226,7 +228,7 @@ protected Dispatcher createDispatcher() { // Wait for scheduler to finish processing kill events.. dispatcher.waitForEventThreadToWait(); - checkUsedResource(rm1, "default", 1 * GB, null); + waitForUsedResources(rm1, "default", 1 * GB, null); Assert.assertEquals(1 * GB, app.getAppAttemptResourceUsage().getUsed().getMemorySize()); @@ -1153,4 +1155,14 @@ private void verifyAvailableResourceOfSchedulerNode(MockRM rm, NodeId nodeId, Assert .assertEquals(expectedMemory, node.getUnallocatedResource().getMemorySize()); } + + private void waitForUsedResources(final MockRM rm, final String queueName, + final int memory, final String label) + throws TimeoutException, InterruptedException { + final CapacityScheduler cs = (CapacityScheduler) rm.getResourceScheduler(); + final CSQueue queue = cs.getQueue(queueName); + GenericTestUtils.waitFor(() -> memory == queue.getQueueResourceUsage() + .getUsed(label == null ? RMNodeLabelsManager.NO_LABEL : label) + .getMemorySize(), 2, 5000); + } }