[ 
https://issues.apache.org/jira/browse/HBASE-21134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16604603#comment-16604603
 ] 

Andrew Purtell commented on HBASE-21134:
----------------------------------------

Guardrails would be good, but that would benefit most by HBASE-19842

> Add guardrails to cell tags in order to avoid the tags length to overflow 
> --------------------------------------------------------------------------
>
>                 Key: HBASE-21134
>                 URL: https://issues.apache.org/jira/browse/HBASE-21134
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.5.0
>            Reporter: Esteban Gutierrez
>            Assignee: Esteban Gutierrez
>            Priority: Critical
>
> We found that per cell tags can easily overflow and and cause failures while 
> reading HFiles. If a mutation has more than 32KB for the byte array with the 
> tags we should reject the operation on the client side (proactively) and the 
> server side as we deserialize the request.
> {code}
> 2018-08-21 11:08:45,387 ERROR 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread: Compaction failed 
> Request = regionName=table1,,1534870486680.9112ca53504084152da5e28116f40ec2., 
> storeName=c1, fileCount=4, fileSize=254.2 K (138.0 K, 33.5 K, 34.0 K, 48.7 
> K), priority=1, time=8555785624243
> java.lang.IllegalStateException: Invalid currTagsLen -20658. Block offset: 0, 
> block length: 44912, position: 0 (without header).
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV3$ScannerV3.checkTagsLen(HFileReaderV3.java:226)
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV3$ScannerV3.readKeyValueLen(HFileReaderV3.java:251)
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.updateCurrBlock(HFileReaderV2.java:956)
>       at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.seekTo(HFileReaderV2.java:919)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:304)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:200)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:350)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:269)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:231)
>       at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:414)
>       at 
> org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:91)
>       at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:125)
>       at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1247)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:1915)
>       at 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.doCompaction(CompactSplitThread.java:529)
>       at 
> org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.run(CompactSplitThread.java:566)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to