Skip to content

[C++][Parquet] Footer parsing is broken on big-endian machines #44769

@QuLogic

Description

@QuLogic

Describe the bug, including details regarding any error messages, version, and platform.

On a big-endian machine, several tests fail like this:

[----------] 2 tests from TestBooleanRLE
[ RUN      ] TestBooleanRLE.TestBooleanScanner
unknown file: Failure
C++ exception with description "Invalid: Parquet file size is 192 bytes, smaller than the size reported by footer's (1862270976bytes)" thrown in SetUp().

[  FAILED  ] TestBooleanRLE.TestBooleanScanner (0 ms)
[ RUN      ] TestBooleanRLE.TestBatchRead
unknown file: Failure
C++ exception with description "Invalid: Parquet file size is 192 bytes, smaller than the size reported by footer's (1862270976bytes)" thrown in SetUp().

[  FAILED  ] TestBooleanRLE.TestBatchRead (0 ms)
[----------] 2 tests from TestBooleanRLE (1 ms total)

This occurs for several tests, which I did not copy out, but they are all similar. This is pretty indicative of incorrect endianness, as byteswapping 1862270976 produces 111, which is smaller than the file size of 192 bytes.

Component(s)

Parquet

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions