You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jm...@apache.org on 2012/05/17 23:54:37 UTC
svn commit: r1339879 - in /hbase/branches/0.92: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
Author: jmhsieh
Date: Thu May 17 21:54:37 2012
New Revision: 1339879
URL: http://svn.apache.org/viewvc?rev=1339879&view=rev
Log:
HBASE-6018 hbck fails with a RejectedExecutionException when >50 regions present
Modified:
hbase/branches/0.92/CHANGES.txt
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1339879&r1=1339878&r2=1339879&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Thu May 17 21:54:37 2012
@@ -62,6 +62,7 @@ Release 0.92.2 - Unreleased
HBASE-5894 Table deletion failed but HBaseAdmin#deletetable reports it as success (Xufeng)
HBASE-5942 HConnnectionManager.getRegionServerWithRetries doesn't call afterCall properly
HBASE-5922 HalfStoreFileReader seekBefore causes StackOverflowError (Nate Putnam)
+ HBASE-6018 hbck fails with a RejectedExecutionException when >50 regions present
IMPROVEMENTS
HBASE-5592 Make it easier to get a table from shell (Ben West)
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1339879&r1=1339878&r2=1339879&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Thu May 17 21:54:37 2012
@@ -33,7 +33,7 @@ import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.concurrent.ConcurrentSkipListMap;
-import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
@@ -217,9 +217,9 @@ public class HBaseFsck {
this.conf = conf;
int numThreads = conf.getInt("hbasefsck.numthreads", MAX_NUM_THREADS);
- executor = new ThreadPoolExecutor(1, numThreads,
+ executor = new ThreadPoolExecutor(numThreads, numThreads,
THREADS_KEEP_ALIVE_SECONDS, TimeUnit.SECONDS,
- new SynchronousQueue<Runnable>());
+ new LinkedBlockingQueue<Runnable>());
executor.allowCoreThreadTimeOut(true);
}
Modified: hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java?rev=1339879&r1=1339878&r2=1339879&view=diff
==============================================================================
--- hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java (original)
+++ hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java Thu May 17 21:54:37 2012
@@ -351,6 +351,27 @@ public class TestHBaseFsck {
}
/**
+ * Test thread pooling in the case where there are more regions than threads
+ */
+ @Test
+ public void testHbckThreadpooling() throws Exception {
+ String table = "tableDupeStartKey";
+ try {
+ // Create table with 4 regions
+ setupTable(table);
+
+ // limit number of threads to 1.
+ Configuration newconf = new Configuration(conf);
+ newconf.setInt("hbasefsck.numthreads", 1);
+ assertNoErrors(doFsck(newconf, false));
+
+ // We should pass without triggering a RejectedExecutionException
+ } finally {
+ deleteTable(table);
+ }
+ }
+
+ /**
* This create and fixes a bad table with regions that have a duplicate
* start key
*/