You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Hsieh (JIRA)" <ji...@apache.org> on 2012/05/16 17:05:03 UTC
[jira] [Commented] (HBASE-6018) hbck fails with a
RejectedExecutionException
[ https://issues.apache.org/jira/browse/HBASE-6018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13276787#comment-13276787 ]
Jonathan Hsieh commented on HBASE-6018:
---------------------------------------
This line seems related to attempt to enqueue a work item into a SynchronousQueue introduced in HBASE-4859. I don't understand why a SynchronousQueue is used (it has no capacity!)
Problem goes away after this change:
{code}
diff --git a/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java b/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
index 83aa316..8a050fd 100644
--- a/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
+++ b/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
@@ -33,7 +33,8 @@ 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.SynchronousQueue;
+import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
@@ -217,9 +218,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);
}
{code}
> hbck fails with a RejectedExecutionException
> --------------------------------------------
>
> Key: HBASE-6018
> URL: https://issues.apache.org/jira/browse/HBASE-6018
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.92.1, 0.94.0
> Reporter: Jonathan Hsieh
> Assignee: Jonathan Hsieh
>
> On a long running job 0.94.0rc3 cluster, we get to a point where hbck consistently encounters this error and fails:
> {code}
> Exception in thread "main" java.util.concurrent.RejectedExecutionException
> at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
> at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
> at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
> at org.apache.hadoop.hbase.util.HBaseFsck.loadHdfsRegionInfos(HBaseFsck.java:633)
> at org.apache.hadoop.hbase.util.HBaseFsck.onlineConsistencyRepair(HBaseFsck.java:354)
> at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:382)
> at org.apache.hadoop.hbase.util.HBaseFsck.main(HBaseFsck.java:3120)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira