You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Abhishek Singh Chouhan (JIRA)" <ji...@apache.org> on 2016/09/20 13:01:20 UTC

[jira] [Created] (HBASE-16660) ArrayIndexOutOfBounds during the majorCompactionCheck in DateTieredCompaction

Abhishek Singh Chouhan created HBASE-16660:
----------------------------------------------

             Summary: ArrayIndexOutOfBounds during the majorCompactionCheck in DateTieredCompaction
                 Key: HBASE-16660
                 URL: https://issues.apache.org/jira/browse/HBASE-16660
             Project: HBase
          Issue Type: Bug
          Components: Compaction
    Affects Versions: 0.98.20
            Reporter: Abhishek Singh Chouhan
            Assignee: Abhishek Singh Chouhan
             Fix For: 2.0.0, 1.4.0, 0.98.23


We get an ArrayIndexOutOfBoundsException during the major compaction check as follows
{noformat}
2016-09-19 05:04:18,287 ERROR [20.compactionChecker] regionserver.HRegionServer$CompactionChecker - Caught exception
java.lang.ArrayIndexOutOfBoundsException: -2
        at org.apache.hadoop.hbase.regionserver.compactions.DateTieredCompactionPolicy.shouldPerformMajorCompaction(DateTieredCompactionPolicy.java:159)
        at org.apache.hadoop.hbase.regionserver.HStore.isMajorCompaction(HStore.java:1412)
        at org.apache.hadoop.hbase.regionserver.HRegionServer$CompactionChecker.chore(HRegionServer.java:1532)
        at org.apache.hadoop.hbase.Chore.run(Chore.java:80)
        at java.lang.Thread.run(Thread.java:745)
{noformat}

This happens due to the following lines in org.apache.hadoop.hbase.regionserver.compactions.DateTieredCompactionPolicy.selectMajorCompaction
{noformat}
int lowerWindowIndex = Collections.binarySearch(boundaries,
        minTimestamp == null ? Long.MAX_VALUE : file.getMinimumTimestamp());
      int upperWindowIndex = Collections.binarySearch(boundaries,
        file.getMaximumTimestamp() == null ? Long.MAX_VALUE : file.getMaximumTimestamp());
{noformat}
These return negative values if the element is not found and in the case the values are equal we get the exception.



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