[ 
https://issues.apache.org/jira/browse/HBASE-23143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Reid Chan updated HBASE-23143:
------------------------------
    Fix Version/s:     (was: 1.7.0)
                   1.8.0

> Region Server Crash due to 2 cells out of order ( between 2 DELETEs)
> --------------------------------------------------------------------
>
>                 Key: HBASE-23143
>                 URL: https://issues.apache.org/jira/browse/HBASE-23143
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.3.2
>            Reporter: Xu Cang
>            Priority: Major
>             Fix For: 1.8.0
>
>
> Region Server Crash due to 2 cells out of order ( between 2 DELETEs)
>  
> Caused by: java.io.IOException: Added a key not lexically larger than 
> previous.
>  Current cell = 
> 00D7F000000xxQ10D52v00008UY6yV0057F000000bPaGT\x000000000000000000057F000000bPaG/0:TABLE1_ID/*1570095189597*/DeleteColumn/vlen=0/seqid=*2128373*,
>  
>  lastCell = 
> 00D7F000000xxQ10D52v00008UY6yV0057F000000bPaGT\x000000000000000000057F000000bPaG/0:TABLE1_ID/*1570095165147*/DeleteColumn/vlen=0/seqid=*2128378*
>  
>  
> I am aware of this JIRA: https://issues.apache.org/jira/browse/HBASE-22862
> Though it's slightly different, HBASE-22862 issue was caused One Delete and 
> One Put.
> This issue I am reporting is caused by 2 Deletes
>  
> Has anyone seen this issue? 
>  
> After I read the code and debugged the test cases.
> In AbstractHFileWriter.java
> {code:java}
> int keyComp = comparator.compareOnlyKeyPortion(lastCell, cell);{code}
> This call will always ignore SequenceId. And time stamps are in the correct 
> order (above case)
> And since these 2 cells have same KEY. The comparison result should be 0.
>  *only possible issue I can think of is, in this code piece: in 
> CellComparator.java:*
> {code:java}
> Bytes.compareTo(left.getRowArray(), left.getRowOffset(), left.getRowLength(),
>  right.getRowArray(), right.getRowOffset(), right.getRowLength());{code}
> The getRowLength() returns a wrong value.
> Or the offset is messed up. (?)



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

Reply via email to