[ https://issues.apache.org/jira/browse/HBASE-4028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13054852#comment-13054852 ]
Ted Yu commented on HBASE-4028: ------------------------------- Thanks Gao for the patch. I think the following can be simplified: {code} + while (totalBuffered > maxHeapUsage && (thrown == null || thrown.get()== null)){ {code} to this because writerThreadError() would only set thrown to a non-null Throwable: {code} + while (totalBuffered > maxHeapUsage && thrown.get()== null){ {code} I am running the modified patch on 0.90 branch. Will commit if tests pass. > Hmaster crashes caused by splitting log. > ---------------------------------------- > > Key: HBASE-4028 > URL: https://issues.apache.org/jira/browse/HBASE-4028 > Project: HBase > Issue Type: Bug > Components: master > Affects Versions: 0.90.3 > Reporter: gaojinchao > Assignee: gaojinchao > Fix For: 0.90.4 > > Attachments: HBASE-4028-0.90V2, Screenshot-2.png, Verifiedresult.png, > hbase-root-master-157-5-100-8.rar > > > In my performance cluster(0.90.3), The Hmaster memory from 100 M up to 4G > when one region server crashed. > I added some print in function doneWriting and found the values of > totalBuffered is negative. > 10:29:52,119 WARN org.apache.hadoop.hbase.regionserver.wal.HLogSplitter: > gjc:release Used -565832 > hbase-root-master-157-5-111-21.log:2011-06-24 10:29:52,119 WARN > org.apache.hadoop.hbase.regionserver.wal.HLogSplitter: gjc:release Used > -565832release size25168 > void doneWriting(RegionEntryBuffer buffer) { > synchronized (this) { > LOG.warn("gjc1: relase currentlyWriting +biggestBufferKey " + > buffer.encodedRegionName ); > boolean removed = currentlyWriting.remove(buffer.encodedRegionName); > assert removed; > } > long size = buffer.heapSize(); > synchronized (dataAvailable) { > totalBuffered -= size; > LOG.warn("gjc:release Used " + totalBuffered ); > // We may unblock writers > dataAvailable.notifyAll(); > } > LOG.warn("gjc:release Used " + totalBuffered + "release size"+ size); > } -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira