wForget opened a new issue, #12594:
URL: https://github.com/apache/gluten/issues/12594

   ### Backend
   
   VL (Velox)
   
   ### Bug description
   
   ### Problem
   
   In the columnar shuffle path, 
[`UniffleShuffleManager#getWriter`](https://github.com/apache/gluten/blob/main/backends-velox/src-uniffle/main/java/org/apache/spark/shuffle/gluten/uniffle/UniffleShuffleManager.java)
 passes `context.taskAttemptId()` directly to 
`VeloxUniffleColumnarShuffleWriter` as the task attempt ID used for generating 
Uniffle block IDs.
   
   Spark's `TaskContext.taskAttemptId()` is a globally monotonically increasing 
value. It may exceed the number of bits reserved for the task attempt ID in 
Uniffle's `BlockIdLayout`, causing columnar shuffle writes to fail in 
applications with sufficiently large task attempt IDs.
   
   Uniffle's standard `RssShuffleManager` avoids this by deriving a 
stage-scoped ID:
   
   ```java
   getTaskAttemptIdForBlockId(context.partitionId(), context.attemptNumber())
   ```
   
   The row-based shuffle path already uses the standard Uniffle implementation 
and is not affected.
   
   ### Proposed fix
   
   Compute the block ID task attempt ID using the inherited helper and pass it 
to `VeloxUniffleColumnarShuffleWriter`:
   
   ```java
   long rssTaskAttemptId =
       getTaskAttemptIdForBlockId(context.partitionId(), 
context.attemptNumber());
   ```
   
   Replace the current constructor argument:
   
   ```java
   context.taskAttemptId()
   ```
   
   with:
   
   ```java
   rssTaskAttemptId
   ```
   
   The existing string-form `taskId` can remain unchanged because it is not 
encoded into the Uniffle block ID.
   
   ### Expected behavior
   
   The Gluten Uniffle columnar shuffle writer should use the same task attempt 
ID encoding as Uniffle's standard `RssShuffleManager`, preventing block ID 
overflow for large Spark task attempt IDs.
   
   ### Gluten version
   
   _No response_
   
   ### Spark version
   
   None
   
   ### Spark configurations
   
   _No response_
   
   ### System information
   
   _No response_
   
   ### Relevant logs
   
   ```bash
   
   ```


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