carloea2 opened a new issue, #8179:
URL: https://github.com/apache/texera/issues/8179

   ### Root cause
   
   Python iterates `bytes` as unsigned values from 0 to 255, while Java array 
hashing promotes signed bytes from -128 to 127. The Java-compatible Python 
tuple hash passes binary bytes through unchanged, so non-ASCII binary keys can 
choose different hash-shuffle workers in Python and Scala.
   
   ### Reproduction
   
   Use three receivers and a binary key containing the single byte `0xFF`.
   
   Before: Python hash 317 selects worker 2, Scala hash 61 selects worker 1
   After: both hashes are 61 and both select worker 1
   
   The signed boundary is covered with `0x7F`, `0x80`, and `0xFF`.
   
   ### Expected behavior
   
   Python binary tuple hashes use Java signed-byte semantics.
   
   ### Version
   
   Current `main` at 70c21145887920528d7d5540e3fb790b43e8b759.


-- 
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]

Reply via email to