Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Duplicate
-
4.8.0
-
None
-
None
-
None
Description
When compaction happen during execution of scan over local index the following exception may appears:
Caused by: java.lang.NullPointerException at org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1397) at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockDataInternal(HFileBlock.java:1625) at org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.readBlockData(HFileBlock.java:1504) at org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:439) at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.readNextDataBlock(HFileReaderV2.java:713) at org.apache.hadoop.hbase.io.hfile.HFileReaderV2$EncodedScannerV2.next(HFileReaderV2.java:1256) at org.apache.hadoop.hbase.regionserver.StoreFileScanner.next(StoreFileScanner.java:152) at org.apache.hadoop.hbase.regionserver.LocalIndexStoreFileScanner.seekOrReseekToProperKey(LocalIndexStoreFileScanner.java:234) at org.apache.hadoop.hbase.regionserver.LocalIndexStoreFileScanner.seekOrReseek(LocalIndexStoreFileScanner.java:226) at org.apache.hadoop.hbase.regionserver.LocalIndexStoreFileScanner.reseek(LocalIndexStoreFileScanner.java:94) at org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:55) at org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:312) at org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:268) at org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:815) at org.apache.hadoop.hbase.regionserver.StoreScanner.seekToNextRow(StoreScanner.java:792) at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:592) at org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:147) at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:5699) at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5850) at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5637) at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$2.nextRaw(BaseScannerRegionObserver.java:414)
The reason is that StoreScanner that is produced by IndexHalfStoreFileReaderGenerator#preStoreScannerOpen are not registered as an observer for changing set of readers. So, when compaction delete the original store file, StoreScanner keeps using old scanners.
rajeshbabu, enis FYI
Attachments
Issue Links
- duplicates
-
PHOENIX-3021 Using local index during compaction is producing NPE
- Closed