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

Stefania commented on CASSANDRA-11973:
--------------------------------------

Thank you for the patch, +1. 

>From what I could understand, the intention was to return an unsigned short 
>and therefore an int with non-sign extension is correct. There is a comment 
>[here|https://issues.apache.org/jira/browse/CASSANDRA-10579?focusedCommentId=14985202&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14985202]
> on the ticket that fixed it for the {{UNALIGNED}} case, CASSANDRA-10579, 
>according to which {{MemoryUtil.getShortByByte()}} is already returning an 
>unsigned short, but that's not correct unless we do a {{& 0xFFFF}}.

Therefore, I agree with your patch and, if the tests are OK, I propose to 
commit it to 2.2+ with a slight variation to avoid duplicating {{& 0xFFFF}}:

||2.2||3.0||trunk||
|[patch|https://github.com/stef1927/cassandra/commits/11973-2.2]|[patch|https://github.com/stef1927/cassandra/commits/11973-3.0]|[patch|https://github.com/stef1927/cassandra/commits/11973]|
|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-2.2-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-3.0-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-testall/]|
|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-2.2-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-3.0-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11973-dtest/]|

[~philipthompson]: would it be possible to run the offheap dtests at least with 
one of these patches?

> Is MemoryUtil.getShort() supposed to return a sign-extended or 
> non-sign-extended value?
> ---------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-11973
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11973
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Rei Odaira
>            Assignee: Rei Odaira
>            Priority: Minor
>             Fix For: 2.2.x, 3.0.x, 3.x
>
>         Attachments: 11973-2.2.txt
>
>
> In org.apache.cassandra.utils.memory.MemoryUtil.getShort(), the returned 
> value of unsafe.getShort(address) is bit-wise-AND'ed with 0xffff, while that 
> of getShortByByte(address) is not. This inconsistency results in different 
> returned values when the short integer is negative. Which is preferred 
> behavior? Looking at NativeClustering and NativeCellTest, it seems like 
> non-sign-extension is assumed.
> By the way, is there any reason MemoryUtil.getShort() and 
> MemoryUtil.getShortByByte() return "int", not "short"?



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

Reply via email to