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

Viraj Jasani commented on HBASE-25827:
--------------------------------------

[~shahrs87] [~mohamed.meeran] If you want the patch in branch-2.3, please 
create a PR as branch-2 patch is not cleanly applied there. Merged it to 
master, branch-2 and branch-2.4 so far.

Closing the Jira and once PR is opened, I can reopen this Jira and close again 
with updated fixVersions.

Thanks

> Per Cell TTL tags get duplicated with increments causing tags length overflow
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-25827
>                 URL: https://issues.apache.org/jira/browse/HBASE-25827
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 3.0.0-alpha-1, 2.1.9, 2.2.6
>            Reporter: Shashank Thillainathan
>            Assignee: Rushabh Shah
>            Priority: Critical
>
> Incrementing with per cell TTL and flushing corrupts the HFile.
>  
> Reproducing the issue:
>  Incrementing a row and a column with per cell TTL for about 3 thousand times 
> and flushing corrupts the HFile leaving the table unusable.
> Cause:
>  On reading the HFile, it is found that duplicate TTL tags get appended for 
> each cell.
> Though this case has already been addressed here at HBASE-18030, corruption 
> still occurs even with this patch.
> {code:java}
> java.lang.IllegalStateException: Invalid currTagsLen -32767. Block offset: 
> 16665, block length: 65596, position: 0 (without header). 
> path=hdfs://hdfs/file/path
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.checkTagsLen(HFileReaderImpl.java:642)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.readKeyValueLen(HFileReaderImpl.java:630)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.updateCurrentBlock(HFileReaderImpl.java:1206)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.loadBlockAndSeekToKey(HFileReaderImpl.java:1149)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:863)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:837)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:347)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:256)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.enforceSeek(StoreFileScanner.java:469)
>         at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.pollRealKV(KeyValueHeap.java:369)
>         at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:311)
>         at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:275)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:1038)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:1029)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekOrSkipToNextColumn(StoreScanner.java:764)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:695)
>         at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:153)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6593)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6757)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6527)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.next(HRegion.java:6504)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.next(HRegion.java:6491)
>         at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:7458)
>         at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:7436)
>         at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:8123)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.reckonDeltasByStore(HRegion.java:8003)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.reckonDeltas(HRegion.java:7958)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.doDelta(HRegion.java:7805)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.increment(HRegion.java:7767)
>         at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.increment(RSRpcServices.java:734)
>         at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:877)
>         at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:2705)
>         at 
> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42290)
>         at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
>         at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
>         at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
>         at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
> {code}
>  
>   
>   
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to