HBASE-27169 TestSeparateClientZKCluster is flaky (#4587)

Signed-off-by: Xin Sun <ddupgs@gmail.com>
This commit is contained in:
Duo Zhang 2022-07-01 22:09:01 +08:00 committed by GitHub
parent acfbc3ff7d
commit 03c23beb57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 2 deletions

View File

@ -19,9 +19,9 @@ package org.apache.hadoop.hbase.client;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File; import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.hadoop.hbase.HBaseClassTestRule; import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HBaseTestingUtil; import org.apache.hadoop.hbase.HBaseTestingUtil;
@ -40,6 +40,7 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread; import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster; import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.ClassRule; import org.junit.ClassRule;
import org.junit.Rule; import org.junit.Rule;
@ -100,6 +101,24 @@ public class TestSeparateClientZKCluster {
FileUtils.deleteDirectory(clientZkDir); FileUtils.deleteDirectory(clientZkDir);
} }
@Before
public void setUp() throws IOException {
try (Admin admin = TEST_UTIL.getConnection().getAdmin()) {
waitForNewMasterUpAndAddressSynced(admin);
}
}
private void waitForNewMasterUpAndAddressSynced(Admin admin) {
TEST_UTIL.waitFor(30000, () -> {
try {
return admin.listNamespaces().length > 0;
} catch (Exception e) {
LOG.warn("failed to list namespaces", e);
return false;
}
});
}
@Test @Test
public void testBasicOperation() throws Exception { public void testBasicOperation() throws Exception {
TableName tn = name.getTableName(); TableName tn = name.getTableName();
@ -139,7 +158,7 @@ public class TestSeparateClientZKCluster {
() -> cluster.getMaster() != null && cluster.getMaster().isInitialized()); () -> cluster.getMaster() != null && cluster.getMaster().isInitialized());
LOG.info("Got master {}", cluster.getMaster().getServerName()); LOG.info("Got master {}", cluster.getMaster().getServerName());
// confirm client access still works // confirm client access still works
assertTrue(admin.balance(BalanceRequest.defaultInstance()).isBalancerRan()); waitForNewMasterUpAndAddressSynced(admin);
} }
} }