This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 47230c4727c HBASE-27193 TestZooKeeper is flaky (#4615)
47230c4727c is described below

commit 47230c4727ce9edda469abf95fa5d08190b53f0f
Author: Duo Zhang <[email protected]>
AuthorDate: Wed Jul 13 10:32:01 2022 +0800

    HBASE-27193 TestZooKeeper is flaky (#4615)
    
    Signed-off-by: Guanghao Zhang <[email protected]>
    (cherry picked from commit 2662607b716bab12d5f01de013ba3349cff0d78c)
---
 .../src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java      | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
index e774b6eb9b6..33853f61d1c 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
@@ -193,9 +193,15 @@ public class TestZooKeeper {
       m.getZooKeeper().close();
       MockLoadBalancer.retainAssignCalled = false;
       final int expectedNumOfListeners = countPermanentListeners(zkw);
+      // the master could already been aborted by some background tasks but 
here we call abort
+      // directly to make sure this will happen
       m.abort("Test recovery from zk session expired",
         new KeeperException.SessionExpiredException());
-      assertTrue(m.isStopped()); // Master doesn't recover any more
+      // it is possible that our abort call above returned earlier because of 
someone else has
+      // already called abort, but it is possible that it has not finished the 
abort call yet so the
+      // isStopped flag is still false, let's wait for sometime.
+      TEST_UTIL.waitFor(5000, () -> m.isStopped()); // Master doesn't recover 
any more
+
       // The recovered master should not call retainAssignment, as it is not a
       // clean startup.
       assertFalse("Retain assignment should not be called", 
MockLoadBalancer.retainAssignCalled);

Reply via email to