hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jimmy Xiang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6318) SplitLogWorker exited due to ConcurrentModificationException
Date Tue, 03 Jul 2012 22:46:35 GMT

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

Jimmy Xiang commented on HBASE-6318:
------------------------------------

@Ted, I prefer to synchronized HLogSplitter.java:1330. Because we don't want some other thread
to put more logWriter to the map
while we are closing it down.  With ConcurrentHashMap, we won't get that exception any more.
 But there could be some leakage
since other threads are still adding more logWriter.

I looked into the problem and figured out what's going on.  The worker got a task and started
to work on it.  However, the task
was taken by someone else.  So the task was preempted, and SplitLogWorker.stopTask() was called.
 So HLogSplitter was interrupted.
In clean up the writers, some writer threads are still there, so the CME.

Another thought is how should we handle if t.join is interrupted?

{code}

          try {
            t.join();
          } catch (InterruptedException ie) {
            IOException iie = new InterruptedIOException();
            iie.initCause(ie);
            throw iie;
          }

{code}

I think this part should be fine if we synchronize the loop of HLogSplitter.java:1330.


                
> SplitLogWorker exited due to ConcurrentModificationException
> ------------------------------------------------------------
>
>                 Key: HBASE-6318
>                 URL: https://issues.apache.org/jira/browse/HBASE-6318
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.96.0
>            Reporter: Jimmy Xiang
>         Attachments: 6318-suggest.txt
>
>
> In playing with 0.96 code on a live cluster, found this issue:
> 2012-07-03 12:13:32,572 ERROR org.apache.hadoop.hbase.regionserver.SplitLogWorker: unexpected
error
> java.util.ConcurrentModificationException
>         at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100)
>         at java.util.TreeMap$ValueIterator.next(TreeMap.java:1145)
>         at org.apache.hadoop.hbase.regionserver.wal.HLogSplitter$OutputSink.closeLogWriters(HLogSplitter.java:1330)
>         at org.apache.hadoop.hbase.regionserver.wal.HLogSplitter$OutputSink.finishWritingAndClose(HLogSplitter.java:1221)
>         at org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.splitLogFileToTemp(HLogSplitter.java:441)
>         at org.apache.hadoop.hbase.regionserver.wal.HLogSplitter.splitLogFileToTemp(HLogSplitter.java:369)
>         at org.apache.hadoop.hbase.regionserver.SplitLogWorker$1.exec(SplitLogWorker.java:113)
>         at org.apache.hadoop.hbase.regionserver.SplitLogWorker.grabTask(SplitLogWorker.java:276)
>         at org.apache.hadoop.hbase.regionserver.SplitLogWorker.taskLoop(SplitLogWorker.java:197)
>         at org.apache.hadoop.hbase.regionserver.SplitLogWorker.run(SplitLogWorker.java:164)
>         at java.lang.Thread.run(Thread.java:662)
> 2012-07-03 12:13:32,575 INFO org.apache.hadoop.hbase.regionserver.SplitLogWorker: SplitLogWorker
****.cloudera.com,57020,1341335300238 exiting

--
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

        

Mime
View raw message