Esteban Gutierrez created HBASE-21134:
-----------------------------------------
Summary: 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
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)