diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java index bc05a82fd798..7463f7d227a3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java @@ -372,7 +372,18 @@ private void compactionTest(final TableName tableName, final int flushes, byte[][] families = { family, Bytes.add(family, Bytes.toBytes("2")), Bytes.add(family, Bytes.toBytes("3")) }; createTableWithDefaultConf(tableName, null, families); - loadData(tableName, families, 3000, flushes); + + byte[][] singleFamilyArray = { family }; + + // When singleFamily is true, only load data for the family being tested. This is to avoid + // the case that while major compaction is going on for the family, minor compaction could + // happen for other families at the same time (Two compaction threads long/short), thus + // pollute the compaction and store file numbers for the region. + if (singleFamily) { + loadData(tableName, singleFamilyArray, 3000, flushes); + } else { + loadData(tableName, families, 3000, flushes); + } List regions = new ArrayList<>(); TEST_UTIL