[
https://issues.apache.org/jira/browse/HBASE-3524?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12993327#comment-12993327
]
ryan rawson commented on HBASE-3524:
------------------------------------
the issue is that if the hfile does not have timerangeBytes, this code doesn't
trigger:
(StoreFile.java)
if (timerangeBytes != null) {
this.reader.timeRangeTracker = new TimeRangeTracker();
Writables.copyWritable(timerangeBytes, this.reader.timeRangeTracker);
}
And timeRangeTracker remains null.
But this code doesnt check for null:
(Store.java)
832 long oldest = now - sf.getReader().timeRangeTracker.minimumTimestamp;
if timeRangeTracker is null, we should probably use Integer.MIN_VALUE for
minimumTimestamp.
What is the creation time of your empty file? When is it from? Maybe it's old?
> NPE from CompactionChecker
> --------------------------
>
> Key: HBASE-3524
> URL: https://issues.apache.org/jira/browse/HBASE-3524
> Project: HBase
> Issue Type: Bug
> Reporter: James Kennedy
> Fix For: 0.90.2
>
>
> I recently updated production data to use HBase 0.90.0.
> Now I'm periodically seeing:
> [10/02/11 17:23:27] 30076066 [mpactionChecker] ERROR
> nServer$MajorCompactionChecker - Caught exception
> java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.regionserver.Store.isMajorCompaction(Store.java:832)
> at
> org.apache.hadoop.hbase.regionserver.Store.isMajorCompaction(Store.java:810)
> at
> org.apache.hadoop.hbase.regionserver.HRegion.isMajorCompaction(HRegion.java:2800)
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer$MajorCompactionChecker.chore(HRegionServer.java:1047)
> at org.apache.hadoop.hbase.Chore.run(Chore.java:66)
> The only negative effect is that this is interrupting compactions from
> happening. But that is pretty serious and this might be a sign of data
> corruption?
> Maybe it's just my data, but this task should at least involve improving the
> handling to catch the NPE and still iterate through the other onlineRegions
> that might compact without error. The MajorCompactionChecker.chore() method
> only catches IOExceptions and so this NPE breaks out of that loop.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira