You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey N. Gura (Jira)" <ji...@apache.org> on 2019/10/08 12:15:00 UTC
[jira] [Updated] (IGNITE-12238) RobinHoodBackwardShiftHashMap works
incorrectly on big endian architectures
[ https://issues.apache.org/jira/browse/IGNITE-12238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey N. Gura updated IGNITE-12238:
------------------------------------
Description:
{{RobinHoodBackwardShiftHashMap}} has bug that can be reproduced only on big endinan architectures. In order to reproduce the problem run the following tests:
* {{RobinHoodBackwardShiftHashMapTest.testCollisionOnRemove}}
* {{RobinHoodBackwardShiftHashMapTest.testRandomOpsPutRemove}}
The problem is {{setIdealBucket()}} method writes {{long}} value to the offheap memory, while {{getIdealBucket()}} reads {{int}} value. For little endian architectures it works because meaningful 4 bytes will written first to the memory and leading zero bytes will be rewriteen by the next operation. On big endian architecture always 4 zero bytes will be written to the memory.
was:
{{RobinHoodBackwardShiftHashMap}} has bug that can be reproduced only on big endinan architectures. In order to reproduce the problem run the following tests:
* {{RobinHoodBackwardShiftHashMapTest.testCollisionOnRemove}}
* {{testRandomOpsPutRemove}}
The problem is {{setIdealBucket()}} method writes {{long}} value to the offheap memory, while {{getIdealBucket()}} reads {{int}} value. For little endian architectures it works because meaningful 4 bytes will written first to the memory and leading zero bytes will be rewriteen by the next operation. On big endian architecture always 4 zero bytes will be written to the memory.
> RobinHoodBackwardShiftHashMap works incorrectly on big endian architectures
> ---------------------------------------------------------------------------
>
> Key: IGNITE-12238
> URL: https://issues.apache.org/jira/browse/IGNITE-12238
> Project: Ignite
> Issue Type: Bug
> Reporter: Andrey N. Gura
> Assignee: Andrey N. Gura
> Priority: Major
> Fix For: 2.8
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> {{RobinHoodBackwardShiftHashMap}} has bug that can be reproduced only on big endinan architectures. In order to reproduce the problem run the following tests:
> * {{RobinHoodBackwardShiftHashMapTest.testCollisionOnRemove}}
> * {{RobinHoodBackwardShiftHashMapTest.testRandomOpsPutRemove}}
> The problem is {{setIdealBucket()}} method writes {{long}} value to the offheap memory, while {{getIdealBucket()}} reads {{int}} value. For little endian architectures it works because meaningful 4 bytes will written first to the memory and leading zero bytes will be rewriteen by the next operation. On big endian architecture always 4 zero bytes will be written to the memory.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)