diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java index 164167c43c..846c8aeb11 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverController.java @@ -21,6 +21,7 @@ import java.security.NoSuchAlgorithmException; +import com.google.common.base.Supplier; import org.apache.commons.logging.impl.Log4JLogger; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; @@ -441,12 +442,16 @@ public void testGracefulFailover() throws Exception { cluster.getService(0).getZKFCProxy(conf, 5000).gracefulFailover(); cluster.waitForActiveLockHolder(0); - Thread.sleep(10000); // allow to quiesce + GenericTestUtils.waitFor(new Supplier() { + @Override + public Boolean get() { + return cluster.getService(0).fenceCount == 0 && + cluster.getService(1).fenceCount == 0 && + cluster.getService(0).activeTransitionCount == 2 && + cluster.getService(1).activeTransitionCount == 1; + } + }, 100, 60 * 1000); - assertEquals(0, cluster.getService(0).fenceCount); - assertEquals(0, cluster.getService(1).fenceCount); - assertEquals(2, cluster.getService(0).activeTransitionCount); - assertEquals(1, cluster.getService(1).activeTransitionCount); } @Test @@ -590,14 +595,17 @@ public void testGracefulFailoverMultipleZKfcs() throws Exception { cluster.getService(0).getZKFCProxy(conf, 5000).gracefulFailover(); cluster.waitForActiveLockHolder(0); - Thread.sleep(10000); // allow to quiesce - - assertEquals(0, cluster.getService(0).fenceCount); - assertEquals(0, cluster.getService(1).fenceCount); - assertEquals(0, cluster.getService(2).fenceCount); - assertEquals(2, cluster.getService(0).activeTransitionCount); - assertEquals(1, cluster.getService(1).activeTransitionCount); - assertEquals(1, cluster.getService(2).activeTransitionCount); + GenericTestUtils.waitFor(new Supplier() { + @Override + public Boolean get() { + return cluster.getService(0).fenceCount == 0 && + cluster.getService(1).fenceCount == 0 && + cluster.getService(2).fenceCount == 0 && + cluster.getService(0).activeTransitionCount == 2 && + cluster.getService(1).activeTransitionCount == 1 && + cluster.getService(2).activeTransitionCount == 1; + } + }, 100, 60 * 1000); } private int runFC(DummyHAService target, String ... args) throws Exception {