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)