You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2018/09/05 01:05:00 UTC

[jira] [Commented] (HBASE-21134) Add guardrails to cell tags in order to avoid the tags length to overflow

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

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

bq. We found that per cell tags can easily overflow

How? What tag based feature was in use? 

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