You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Esteban Gutierrez (JIRA)" <ji...@apache.org> on 2018/08/30 19:25:00 UTC
[jira] [Assigned] (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:all-tabpanel ]
Esteban Gutierrez reassigned HBASE-21134:
-----------------------------------------
Assignee: Esteban Gutierrez
> 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)