[ 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