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

ramkrishna.s.vasudevan commented on HBASE-5864:
-----------------------------------------------

Just added a test case to show how midKey() will throw IOException.
Stack what the patch does is,
For the checksum we add some additional bytes while forming the inputstream to 
read the block.
After reading the block we just check if the bytes available in stream is less 
than the MID_KEY_METADATA_SIZE.
But in this case (50000 is many? but i get only one root level index), there is 
always some remaining bytes added as part of check sum and it is always more 
than MID_KEY_METADATA_SIZE.

The testcase that we carried out to get this problem was,
Created a table with no split keys.
Start pumping data to this region using parallel threads.
Allow a couple of flush/compaction.  
Then try to split the region.  We got this problem. 
I may be wrong, pls do correct me and feel free to update the patch also.


                
> Error while reading from hfile in 0.94
> --------------------------------------
>
>                 Key: HBASE-5864
>                 URL: https://issues.apache.org/jira/browse/HBASE-5864
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.94.0
>            Reporter: Gopinathan A
>            Assignee: ramkrishna.s.vasudevan
>            Priority: Critical
>             Fix For: 0.94.0
>
>         Attachments: HBASE-5864_1.patch, HBASE-5864_2.patch, 
> HBASE-5864_test.patch
>
>
> Got the following stacktrace during region split.
> {noformat}
> 2012-04-24 16:05:42,168 WARN org.apache.hadoop.hbase.regionserver.Store: 
> Failed getting store size for value
> java.io.IOException: Requested block is out of range: 2906737606134037404, 
> lastDataBlockOffset: 84764558
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:278)
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:285)
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:402)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1638)
>       at 
> org.apache.hadoop.hbase.regionserver.Store.getSplitPoint(Store.java:1943)
>       at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:77)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:4921)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.splitRegion(HRegionServer.java:2901)
> {noformat}

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

        

Reply via email to