diff --git a/src/test/java/org/apache/hadoop/hbase/TestGlobalMemStoreSize.java b/src/test/java/org/apache/hadoop/hbase/TestGlobalMemStoreSize.java index caba582..83beb01 100644 --- a/src/test/java/org/apache/hadoop/hbase/TestGlobalMemStoreSize.java +++ b/src/test/java/org/apache/hadoop/hbase/TestGlobalMemStoreSize.java @@ -32,6 +32,7 @@ import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.HRegion; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.JVMClusterUtil; +import org.apache.hadoop.hbase.util.Threads; import org.junit.Test; /** @@ -40,7 +41,6 @@ import org.junit.Test; */ public class TestGlobalMemStoreSize { private final Log LOG = LogFactory.getLog(this.getClass().getName()); - private static final HBaseTestingUtility UTIL = new HBaseTestingUtility(); private static int regionServerNum =4; private static int regionNum = 16; @@ -90,14 +90,21 @@ public class TestGlobalMemStoreSize { } // check the global memstore size after flush + int i = 0; for (HRegionServer server : getOnlineRegionServers()) { for(HRegionInfo regionInfo : server.getOnlineRegions()) { - HRegion region= - server.getFromOnlineRegions(regionInfo.getEncodedName()); - region.flushcache(); + HRegion r = server.getFromOnlineRegions(regionInfo.getEncodedName()); + r.flushcache(); } - assertEquals(server.getRegionServerAccounting().getGlobalMemstoreSize(), - 0); + LOG.info("Post flush on " + server.getServerName()); + long now = System.currentTimeMillis(); + long timeout = now + 3000; + while(server.getRegionServerAccounting().getGlobalMemstoreSize() != 0 && + timeout < System.currentTimeMillis()) { + Threads.sleep(10); + } + assertEquals("Server=" + server.getServerName() + ", i=" + i++, 0, + server.getRegionServerAccounting().getGlobalMemstoreSize()); } TEST_UTIL.shutdownMiniCluster();