[ https://issues.apache.org/jira/browse/HBASE-22433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16843585#comment-16843585 ]
Zheng Hu commented on HBASE-22433: ---------------------------------- bq. we need first to revert HBASE-20789/HBASE-20447 and as Duo Zhang see in HBASE-20789 The two issues are mainly used to fix the issue as the Javadoc says, so I don't think we can revert them now. {code} /** * Because of the region splitting, it's possible that the split key locate in the middle of a * block. So it's possible that both the daughter regions load the same block from their parent * HFile. When pread, we don't force the read to read all of the next block header. So when two * threads try to cache the same block, it's possible that one thread read all of the next block * header but the other one didn't. if the already cached block hasn't next block header but the * new block to cache has, then we can replace the existing block with the new block for better * performance.(HBASE-20447) * @param blockCache BlockCache to check * @param cacheKey the block cache key * @param newBlock the new block which try to put into the block cache. * @return true means need to replace existing block with new block for the same block cache key. * false means just keep the existing block. */ public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache, BlockCacheKey cacheKey, Cacheable newBlock) { {code} > Corrupt hfile data > ------------------ > > Key: HBASE-22433 > URL: https://issues.apache.org/jira/browse/HBASE-22433 > Project: HBase > Issue Type: Bug > Affects Versions: 2.2.0 > Reporter: binlijin > Priority: Critical > > We use 2.2.0 version and encounter corrupt cell data. > {code} > 2019-05-15 22:53:59,354 ERROR > [regionserver/hb-mbasedata-14:16020-longCompactions-1557048533421] > regionserver.CompactSplit: Compaction failed > region=mktdm_id_src,99999990,1557681762973.255e9adde013e370deb595c59a7285c3., > storeName=o, priority=196, startTime=1557931927314 > java.lang.IllegalStateException: Invalid currKeyLen 1700752997 or > currValueLen 2002739568. Block offset: 70452918, block length: 66556, > position: 42364 (without header). > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.checkKeyValueLen(HFileReaderImpl.java:1182) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.readKeyValueLen(HFileReaderImpl.java:628) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl._next(HFileReaderImpl.java:1080) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.next(HFileReaderImpl.java:1097) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.next(StoreFileScanner.java:208) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:120) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:644) > at > org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:386) > at > org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:326) > at > org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65) > at > org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126) > at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1429) > at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2231) > at > org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:629) > at > org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:671) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > > 2019-05-15 23:14:24,143 ERROR > [regionserver/hb-mbasedata-14:16020-longCompactions-1557048533422] > regionserver.CompactSplit: Compaction failed > region=mktdm_id_src,9fdee4,1557681762973.1782aebb83eae551e7bdfc2bfa13eb3d., > storeName=o, priority=194, startTime=1557932726849 > java.lang.RuntimeException: Unknown code 98 > at org.apache.hadoop.hbase.KeyValue$Type.codeToType(KeyValue.java:274) > at org.apache.hadoop.hbase.CellUtil.getCellKeyAsString(CellUtil.java:1307) > at > org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.getMidpoint(HFileWriterImpl.java:383) > at > org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.finishBlock(HFileWriterImpl.java:343) > at > org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.close(HFileWriterImpl.java:603) > at > org.apache.hadoop.hbase.regionserver.StoreFileWriter.close(StoreFileWriter.java:376) > at > org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.abortWriter(DefaultCompactor.java:98) > at > org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.abortWriter(DefaultCompactor.java:42) > at > org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:335) > at > org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65) > at > org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126) > at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1429) > at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2231) > at > org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:629) > at > org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:671) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)