Copilot commented on code in PR #3845:
URL: https://github.com/apache/celeborn/pull/3845#discussion_r4004617604


##########
common/src/main/java/org/apache/celeborn/common/protocol/message/StatusCode.java:
##########
@@ -93,7 +93,8 @@ public enum StatusCode {
   SEGMENT_START_FAIL_PRIMARY(53),
   NO_SPLIT(54),
   WORKER_UNRESPONSIVE(55),
-  READ_REDUCER_PARTITION_END_FAILED(56);
+  READ_REDUCER_PARTITION_END_FAILED(56),
+  SHUFFLE_EXPIRED(57);

Review Comment:
   This adds a wire status that the C++ client cannot deserialize. 
`cpp/celeborn/protocol/StatusCode.h` still ends at `TAIL == 55`, and 
`cpp/celeborn/protocol/PartitionLocation.cpp:175-178` rejects any response 
status above that value, so a C++ `GetReducerFileGroup` receiving 57 will abort 
before it can handle the expired shuffle. Update the C++ enum/conversion bound 
and `ShuffleClientImpl` handling together with this protocol change.



##########
client/src/main/scala/org/apache/celeborn/client/LifecycleManager.scala:
##########
@@ -1280,6 +1290,7 @@ class LifecycleManager(val appUniqueId: String, val conf: 
CelebornConf) extends
       }
     }
     celebornShuffleIdToAppShuffleIdMap.remove(shuffleId)
+    expiredShuffleIds.add(shuffleId)

Review Comment:
   `unregisterShuffle` is also called for lazy shuffles that never reached 
`registeredShuffle` (for example the `hasMapping = false` app-unregister path). 
Adding every such id to this set makes a later `GetReducerFileGroup` return 
`SHUFFLE_EXPIRED`, losing the existing `SHUFFLE_UNREGISTERED`/empty-shuffle 
behavior. Only record ids that were actually registered (or otherwise 
distinguish an unregistered empty shuffle).
   
   This issue also appears on line 1310 of the same file.



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