-
Notifications
You must be signed in to change notification settings - Fork 3.9k
GH-48220: [C++] Fix arrow-buffer & arrow-misc testcase failures on s390x #48221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
GH-48220: [C++] Fix arrow-buffer & arrow-misc testcase failures on s390x #48221
Conversation
|
|
64d5429 to
6828f2c
Compare
|
Could you update the PR title and description?
|
|
Thanks for taking a look at the buffer and OOM paths — these tests always feel a little fragile, and every platform seems to expose a different edge case. One thing I’ve run into on s390x is that some of the allocators (mimalloc in particular) don’t fail gracefully on the “impossible size” cases. They sometimes hit fatal paths before Arrow ever gets a chance to raise I noticed this version skips the test entirely on big-endian builds. That definitely avoids the allocator crash, though it does mean BE never exercises the OOM branch at all. In my own testing I’ve had some luck clamping the huge allocation down to something like |
|
|
…ble Parquet DB support on s390x
6828f2c to
c837d07
Compare
| // This test doesn't play nice with AddressSanitizer | ||
| #ifndef ADDRESS_SANITIZER | ||
| // Skip this test on big-endian architectures (e.g., s390x) | ||
| #if !defined(ADDRESS_SANITIZER) && ARROW_LITTLE_ENDIAN |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please write why we need to skip this test shortly in this comment? In addition, could you please include the link to this PR and include the detail in the description of the PR?
|
|
||
| TYPED_TEST_P(TestMemoryPool, MemoryTracking) { this->TestMemoryTracking(); } | ||
|
|
||
| // Skip this test on big-endian architectures (e.g., s390x) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
Rationale for this change
This PR is intended to enable Parquet DB support on Big-endian (s390x) systems. The fix in this PR fixes the "arrow-buffer-test" & "arrow-misc-test" failures on s390x.
What changes are included in this PR?
The fix includes changes to following files:
cpp/src/arrow/buffer_test.cc
cpp/src/arrow/memory_pool_test.cc
Are these changes tested?
Yes. The changes are tested on s390x arch to make sure things are working fine. The fix is also tested on x86 arch, to make sure there is no new regression introduced.
Are there any user-facing changes?
No.
GitHub main Issue link: #48151