[ 
https://issues.apache.org/jira/browse/HBASE-3155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nicolas Spiegelberg updated HBASE-3155:
---------------------------------------

    Status: Patch Available  (was: Open)

> HFile.appendMetaBlock() uses wrong comparator
> ---------------------------------------------
>
>                 Key: HBASE-3155
>                 URL: https://issues.apache.org/jira/browse/HBASE-3155
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Nicolas Spiegelberg
>            Assignee: Nicolas Spiegelberg
>            Priority: Critical
>             Fix For: 0.90.0
>
>         Attachments: HBASE-3155.patch
>
>
> We hit this exception last night...
> 2010-10-26 01:20:20,056 INFO org.apache.hadoop.hbase.regionserver.StoreFile: 
> Bloom added to HFile (...): 18752B, 13012/13601 (96%)
> 2010-10-26 01:20:20,056 INFO org.apache.hadoop.hbase.regionserver.HRegion: 
> aborted compaction on region 
> 04,04c84c80,1286302852528.77d461b19c7f410041f1d03f4823ef8b. after 20mins, 
> 43sec
> 2010-10-26 01:20:20,056 ERROR 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread: Compaction failed 
> for region 04,04c84c80,1286302852528.77d461b19c7f410041f1d03f4823ef8b.
> java.lang.ArrayIndexOutOfBoundsException: 17
> at org.apache.hadoop.hbase.util.Bytes.compareTo(Bytes.java:860)
> at 
> org.apache.hadoop.hbase.KeyValue$KeyComparator.compareRows(KeyValue.java:1888)
> at org.apache.hadoop.hbase.KeyValue$KeyComparator.compare(KeyValue.java:1822)
> at 
> org.apache.hadoop.hbase.io.hfile.HFile$Writer.appendMetaBlock(HFile.java:476)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Writer.close(StoreFile.java:862)
> at org.apache.hadoop.hbase.regionserver.Store.compact(Store.java:896)
> at org.apache.hadoop.hbase.regionserver.Store.compact(Store.java:687)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.compactStores(HRegion.java:858)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.compactStores(HRegion.java:807)
> The problem is that appendMetaBlock() is using the wrong comparator. although 
> the variable is called 'rawComparator', it's actually a normal comparator 
> (KeyComparator) that defaults to RawComparator if not specified. All meta 
> sorting needs to be done using the actual Bytes.RAW_COMPARATOR.  This 
> happened because >=2 things were inserted into meta. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to