HBASE-27193 TestZooKeeper is flaky (#4615)

Signed-off-by: Guanghao Zhang <zghao@apache.org>
(cherry picked from commit 2662607b71)
This commit is contained in:
Duo Zhang 2022-07-13 10:32:01 +08:00
parent fafc7ff478
commit 0a72d2215d
1 changed files with 7 additions and 1 deletions

View File

@ -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);