manuzhang opened a new pull request, #1019:
URL: https://github.com/apache/iceberg-cpp/pull/1019

   MurmurHash3's block readers interpreted input as native 32/64-bit words, 
producing different bucket hashes on big-endian hosts and making unaligned byte 
spans undefined behavior. Replace those loads with the existing 
`ReadLittleEndian` helper and keep block pointers byte-addressed in all three 
MurmurHash3 variants.
   
   Part of #1000. For example, hashing int/long `34` on s390x now yields the 
specified hash `2017239379` and `bucket[100] = 79`, instead of the reported 
`1403955681` / `81`.
   
   Add canonical bucket values for int, long, string, binary, fixed, and UUID 
inputs. Add numeric hash-word fixtures from the original SMHasher 
implementation covering block/tail boundaries, multiple blocks, a nonzero seed, 
and input offsets 0–7 for all three variants. Register the new regression in 
`util_test`.
   
   Validation:
   - Native macOS arm64: focused bucket/Murmur GTests compiled with UBSan 
against the patched hash source and unchanged prebuilt main core/data 
libraries; all 4 tests passed. The original hash source fails the 
unaligned-input UBSan regression.
   - Actual statically linked s390x binaries under QEMU 8.2.2, compiled with 
GCC 14.2: original source fails 152 golden-vector expectations; patched source 
passes all 264 comparisons and a runtime big-endian check. This validates the 
hash implementation, not a full Iceberg integration build.
   - CMake configuration confirms the new regression is included in `util_test`.
   - Clang-tidy on the changed C++ files with warnings treated as errors: 
passed.
   - `pre-commit run --all-files` and `git diff --check`: passed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to