[ 
https://issues.apache.org/jira/browse/HBASE-12891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14310330#comment-14310330
 ] 

Enis Soztutar commented on HBASE-12891:
---------------------------------------

With addendum TestHBaseFsck fails now. tableInfos is not thread safe. I think 
we should revert the patch until we fix it. 

{code}
java.io.IOException: java.util.ConcurrentModificationException
        at 
org.apache.hadoop.hbase.util.HBaseFsck.checkAndFixConsistency(HBaseFsck.java:1726)
        at 
org.apache.hadoop.hbase.util.HBaseFsck.onlineConsistencyRepair(HBaseFsck.java:593)
        at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:612)
        at 
org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.doFsck(HbckTestingUtil.java:68)
        at 
org.apache.hadoop.hbase.util.TestHBaseFsck.testSplitDaughtersNotInMeta(TestHBaseFsck.java:1729)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
Caused by: java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
        at java.util.ArrayList$Itr.next(ArrayList.java:831)
        at 
org.apache.hadoop.hbase.util.HBaseFsck.checkRegionConsistency(HBaseFsck.java:2046)
        at org.apache.hadoop.hbase.util.HBaseFsck.access$2(HBaseFsck.java:1968)
        at 
org.apache.hadoop.hbase.util.HBaseFsck$WorkItemRegionConsistency.call(HBaseFsck.java:2388)
        at 
org.apache.hadoop.hbase.util.HBaseFsck$WorkItemRegionConsistency.call(HBaseFsck.java:1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
{code}

> Parallel execution for Hbck checkRegionConsistency
> --------------------------------------------------
>
>                 Key: HBASE-12891
>                 URL: https://issues.apache.org/jira/browse/HBASE-12891
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 2.0.0, 0.98.10, 1.1.0
>            Reporter: churro morales
>            Assignee: churro morales
>             Fix For: 2.0.0, 1.1.0, 0.98.11
>
>         Attachments: HBASE-12891-v1.patch, HBASE-12891.98.patch, 
> HBASE-12891.patch, HBASE-12891.patch, hbase-12891-addendum1.patch
>
>
> We have a lot of regions on our cluster ~500k and noticed that hbck took 
> quite some time in checkAndFixConsistency().  [~davelatham] patched our 
> cluster to do this check in parallel to speed things up.  I'll attach the 
> patch.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to