[ 
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)

Reply via email to