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

Gabriel Reid commented on PHOENIX-1472:
---------------------------------------

[~jamestaylor] you're correct about it being quite unlikely, any given row has 
a 1 in 4 billion chance of having this situation. Have we got a list of release 
notes somewhere so that this can be added?

Your alternative solution is actually much better, because it remains backwards 
compatible with the current implementation -- I just noticed that my patch 
would break reading of any row keys with negative hash values.

> SaltingUtil calculates wrong salt key for Integer.MIN_VALUE hash code
> ---------------------------------------------------------------------
>
>                 Key: PHOENIX-1472
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1472
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Gabriel Reid
>         Attachments: PHOENIX-1472.patch
>
>
> There is an edge case in SaltingUtil.getSaltingByte where an invalid salt 
> byte is calculated. This happens when the hash code of the row key being 
> salted is equal to {{Integer.MIN_VALUE}}. The underlying bug is the use of 
> Math.abs(hashCode) in SaltingUtil.getSaltingByte, and the result of the bug 
> is that a hash code outside of the range of configured salt buckets can be 
> returned.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to