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)