[
https://issues.apache.org/jira/browse/MAPREDUCE-6397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alan Burlison updated MAPREDUCE-6397:
-------------------------------------
Description:
MAPREDUCE native code contains multiple uses of the bswap and bswap64 assembler
functions (from
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h).
primitives.h contains neither a sparc implementation of bswap nor a
platform-independent C fallback implementation. In addition, byte swaps are
nearly always made without checking if the platform is big or little endian,
the assumption hard-coded throughout the source seems to be that the platform
is little-endian. This most likely means that the MAPREDUCE native is currently
code non-portable to big-endian platforms. The code needs to be examined
carefully to determine which byte swaps are correct on all platforms and which
are endian-dependent.
was:hard-coded throughout the source
> MAPREDUCE makes many endian-dependent assumptions
> -------------------------------------------------
>
> Key: MAPREDUCE-6397
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-6397
> Project: Hadoop Map/Reduce
> Issue Type: Sub-task
> Components: build
> Affects Versions: 2.7.0
> Environment: MAPREDUCE native code contains multiple uses of the
> bswap and bswap64 assembler functions (from
> hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h).
> primitives.h contains neither a sparc implementation of bswap nor a
> platform-independent C fallback implementation. In addition, byte swaps are
> nearly always made without checking if the platform is big or little endian,
> the assumption hard-coded throughout the source seems to be that the platform
> is little-endian. This most likely means that the MAPREDUCE native is
> currently code non-portable to big-endian platforms. The code needs to be
> examined carefully to determine which byte swaps are correct on all platforms
> and which are endian-dependent.
> Reporter: Alan Burlison
>
> MAPREDUCE native code contains multiple uses of the bswap and bswap64
> assembler functions (from
> hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib/primitives.h).
> primitives.h contains neither a sparc implementation of bswap nor a
> platform-independent C fallback implementation. In addition, byte swaps are
> nearly always made without checking if the platform is big or little endian,
> the assumption hard-coded throughout the source seems to be that the platform
> is little-endian. This most likely means that the MAPREDUCE native is
> currently code non-portable to big-endian platforms. The code needs to be
> examined carefully to determine which byte swaps are correct on all platforms
> and which are endian-dependent.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)