You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org> on 2014/03/14 11:29:47 UTC

[jira] [Created] (HBASE-10749) CellComparator.compareStatic() compares type wrongly

ramkrishna.s.vasudevan created HBASE-10749:
----------------------------------------------

             Summary: CellComparator.compareStatic() compares type wrongly
                 Key: HBASE-10749
                 URL: https://issues.apache.org/jira/browse/HBASE-10749
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.96.1.1, 0.98.1, 0.99.0
            Reporter: ramkrishna.s.vasudevan
            Assignee: ramkrishna.s.vasudevan
            Priority: Critical
             Fix For: 0.98.1, 0.99.0


CellComparator.compareStatic(Cell a, Cell b) compares type wrongly.
{code}
    //type
    c = (0xff & a.getTypeByte()) - (0xff & b.getTypeByte());
    if (c != 0) return c;
{code}

In the normal case it should be the other way
{code}

      // Compare types. Let the delete types sort ahead of puts; i.e. types
      // of higher numbers sort before those of lesser numbers. Maximum (255)
      // appears ahead of everything, and minimum (0) appears after
      // everything.
      return (0xff & rtype) - (0xff & ltype);
{code}
Found this issue while replacing KVComparator to use CellComparator.  
[~mcorgan]
Could you confirm this once?  Currently PrefixTree code path uses this compareStatic method.



--
This message was sent by Atlassian JIRA
(v6.2#6252)