You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nk...@apache.org on 2013/04/09 09:10:13 UTC
svn commit: r1465912 -
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java
Author: nkeywal
Date: Tue Apr 9 07:10:12 2013
New Revision: 1465912
URL: http://svn.apache.org/r1465912
Log:
HBASE-8290 TestHTableMultiplexer is flaky
Modified:
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java?rev=1465912&r1=1465911&r2=1465912&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestHTableMultiplexer.java Tue Apr 9 07:10:12 2013
@@ -29,7 +29,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.LargeTests;
-import org.apache.hadoop.hbase.client.HTableMultiplexer.HTableMultiplexerStatus;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -68,12 +67,11 @@ public class TestHTableMultiplexer {
byte[] TABLE = Bytes.toBytes("testHTableMultiplexer");
final int NUM_REGIONS = 10;
final int VERSION = 3;
- List<Put> failedPuts = null;
- boolean success = false;
+ List<Put> failedPuts;
+ boolean success;
HTableMultiplexer multiplexer = new HTableMultiplexer(TEST_UTIL.getConfiguration(),
PER_REGIONSERVER_QUEUE_SIZE);
- HTableMultiplexerStatus status = multiplexer.getHTableMultiplexerStatus();
HTable ht = TEST_UTIL.createTable(TABLE, new byte[][] { FAMILY }, VERSION,
Bytes.toBytes("aaaaa"), Bytes.toBytes("zzzzz"), NUM_REGIONS);
@@ -91,15 +89,16 @@ public class TestHTableMultiplexer {
success = multiplexer.put(TABLE, put);
assertTrue(success);
- // ensure the buffer has been flushed
- verifyAllBufferedPutsHaveFlushed(status);
LOG.info("Put for " + Bytes.toString(startRows[i]) + " @ iteration " + (i+1));
// verify that the Get returns the correct result
Get get = new Get(startRows[i]);
get.addColumn(FAMILY, QUALIFIER);
Result r;
+ int nbTry = 0;
do {
+ assertTrue(nbTry++ < 50);
+ Thread.sleep(100);
r = ht.get(get);
} while (r == null || r.getValue(FAMILY, QUALIFIER) == null);
assertEquals(0, Bytes.compareTo(VALUE1, r.getValue(FAMILY, QUALIFIER)));
@@ -117,9 +116,6 @@ public class TestHTableMultiplexer {
failedPuts = multiplexer.put(TABLE, multiput);
assertTrue(failedPuts == null);
- // ensure the buffer has been flushed
- verifyAllBufferedPutsHaveFlushed(status);
-
// verify that the Get returns the correct result
for (int i = 0; i < NUM_REGIONS; i++) {
byte [] row = endRows[i];
@@ -127,27 +123,13 @@ public class TestHTableMultiplexer {
Get get = new Get(row);
get.addColumn(FAMILY, QUALIFIER);
Result r;
+ int nbTry = 0;
do {
+ assertTrue(nbTry++ < 50);
+ Thread.sleep(100);
r = ht.get(get);
- } while (r == null || r.getValue(FAMILY, QUALIFIER) == null);
- assertEquals(0, Bytes.compareTo(VALUE2, r.getValue(FAMILY, QUALIFIER)));
+ } while (r == null || r.getValue(FAMILY, QUALIFIER) == null ||
+ Bytes.compareTo(VALUE2, r.getValue(FAMILY, QUALIFIER)) != 0);
}
}
-
- private void verifyAllBufferedPutsHaveFlushed(HTableMultiplexerStatus status) {
- int retries = 8;
- int tries = 0;
- do {
- try {
- Thread.sleep(2 * TEST_UTIL.getConfiguration().getLong(
- HTableMultiplexer.TABLE_MULTIPLEXER_FLUSH_FREQ_MS, 100));
- tries++;
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- } while (status.getTotalBufferedCounter() != 0 && tries != retries);
-
- assertEquals("There are still some buffered puts left in the queue",
- 0, status.getTotalBufferedCounter());
- }
}