diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestNMClientAsync.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestNMClientAsync.java index cec7a81..6fff279 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestNMClientAsync.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/TestNMClientAsync.java @@ -121,8 +121,11 @@ public void testNMClientAsync() throws Exception { } Assert.assertEquals("Error occurs in ContainerEventProcessor", 0, ((MockNMClientAsync1) asyncClient).errorMsgs.size()); - Assert.assertEquals("Completed container is not removed", 0, - asyncClient.containers.size()); + // When the callback functions are all executed, the event processor threads + // may still not terminate and the containers may still not removed. + while (asyncClient.containers.size() > 0) { + Thread.sleep(10); + } asyncClient.stop(); Assert.assertFalse( "The thread of Container Management Event Dispatcher is still alive",