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

Anoop Sam John commented on HBASE-18030:
----------------------------------------

Yes.  The op performed here is Increments.  Each of the increment Mutation will 
have a TTL associated with it. The per cell TTL info will be written to Cell as 
tag. So say for the 1st Cell we have one TTL tag in it. WHen we increment this, 
we will write a new Cell and in that we will copy all tags from existing old 
cell and as the new Mutation having a TTL, we will add a new Tag also to it and 
finally the new Cell will have 2 tags. (Duplicated TTL tags).. This will grow 
with every incr op.  Within a Cell , the total tags length is written in 2 
bytes.  So once this duplicated tags increase to a level and total tags bytes 
exceed Short.MAX_Value, we will write the tags len as -ve.  

> Negative tag length for hbase block/hfile
> -----------------------------------------
>
>                 Key: HBASE-18030
>                 URL: https://issues.apache.org/jira/browse/HBASE-18030
>             Project: HBase
>          Issue Type: Bug
>          Components: hbase, regionserver
>    Affects Versions: 1.1.2
>            Reporter: Abhishek Kumar
>            Assignee: Anoop Sam John
>            Priority: Critical
>         Attachments: HBASE-18030_initial.patch
>
>
> 2017-04-29 14:24:14,135 ERROR 
> [B.fifo.QRpcServer.handler=49,queue=1,port=16020] ipc.RpcServer: Unexpected 
> throwable object java.lang.IllegalStateException: Invalid currTagsLen -32712. 
> Block offset: 3707853, block length: 72841, position: 0 (without header). at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV3$ScannerV3.checkTagsLen(HFileReaderV3.java:226)
> I am not not using any hbase tags feature.
> The Increment operation from the application side is triggering this error. 
> The same is happening when scanner is run on this table. It feels that one or 
> more particular HFile block is corrupt (with negative tagLength).
> hbase(main):007:0> scan 'table-name', {LIMIT=>1,STARTROW=>'ad:event_count:a'}
> Returning the result
> hbase(main):008:0> scan 'table-name', {LIMIT=>1,STARTROW=>'ad:event_count:b'}
> ROW                                                         COLUMN+CELL       
>                                                                               
>                
> ERROR: java.io.IOException: java.lang.IllegalStateException: Invalid 
> currTagsLen -32701. Block offset: 272031, block length: 72441, position: 
> 32487 (without header).
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.handleException(HRegion.java:5607)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:5579)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:2627)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2613)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2595)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2282)
>       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32295)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to