You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Dmitry Konstantinov (Jira)" <ji...@apache.org> on 2025/02/03 17:24:00 UTC
[jira] [Updated] (CASSANDRA-20190) MemoryUtil.setInt/getInt and similar use the wrong endianness
[ https://issues.apache.org/jira/browse/CASSANDRA-20190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Konstantinov updated CASSANDRA-20190:
--------------------------------------------
Bug Category: Parent values: Correctness(12982)Level 1 values: API / Semantic Implementation(12988)
Complexity: Normal
Discovered By: Code Inspection
Severity: Normal
Status: Open (was: Triage Needed)
> MemoryUtil.setInt/getInt and similar use the wrong endianness
> -------------------------------------------------------------
>
> Key: CASSANDRA-20190
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20190
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Local/Other
> Reporter: Branimir Lambov
> Assignee: Dmitry Konstantinov
> Priority: Normal
>
> `NativeCell`, `NativeClustering` and `NativeDecoratedKey` use the above methods from `MemoryUtil` to write and read data from native memory. As far as I can see they are meant to write data in big endian. They do not (they always correct to little endian).
> Moreover, they disagree with their `ByByte` versions on big-endian machines (which is only likely an issue on aligned-access architectures (x86 and arm should be fine)).
> The same is true for the methods in `Memory`, used by compression metadata as well as index summaries.
> We need to verify that this does not cause any problems, and to change the methods to behave as expected and document the behaviour by explicitly using `ByteOrder.LITTLE_ENDIAN` for any data that may have been persisted on disk with the wrong endianness.
> The current MemoryUtil behaviour:
> ||Native order||MemoryUtil.setX||MemoryUtil.setXByByte||MemoryUtil.getX||MemoryUtil.getXByByte||
> |BE|LE|BE|LE|BE|
> |LE|LE|LE|LE|LE|
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org