You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zach York (JIRA)" <ji...@apache.org> on 2017/09/05 19:50:00 UTC

[jira] [Commented] (HBASE-18757) Fix Improper bitwise & in BucketCache offset calculation

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

Zach York commented on HBASE-18757:
-----------------------------------

Attaching patch 002 to test to see if the test fails without the fix

> Fix Improper bitwise & in BucketCache offset calculation
> --------------------------------------------------------
>
>                 Key: HBASE-18757
>                 URL: https://issues.apache.org/jira/browse/HBASE-18757
>             Project: HBase
>          Issue Type: Bug
>          Components: BucketCache
>            Reporter: Zach York
>            Assignee: Zach York
>             Fix For: 1.4.0, 1.3.2, 1.2.7, 2.0.0-alpha-3
>
>         Attachments: HBASE-18757.master.001.patch, HBASE-18757.master.002.patch
>
>
> Offset calculation for BucketCache entries incorrectly uses an int literal to try to ensure that the offset is positive. However, because it uses the string literal 0xFFFFFFFF which java uses at an int (which is negative). When it does the bitwise &, java sign extends the int effectively undoing the original intention of the code and allowing for negative values to slip through.
> Then the read or write to that block will fail due to trying to read/write at a negative index which causes the BucketCache to fail.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)