Skip to content

Commit

Permalink
[CELEBORN-1759] Fix reserve slots might lost partition location betwe…
Browse files Browse the repository at this point in the history
…en 0.4 client and 0.5 server

### What changes were proposed in this pull request?
Fix the worker parses `ReserveSlots` logic for compatibility

### Why are the changes needed?
When upgrading to 0.5, the 0.4 client reserves slots for the 0.5 worker. If there is only a replicate location, the worker parses abnormally, causing the actual reserve to fail, but returns success to the client.
The worker log "Reserved 0 primary location and 0 replica location" appears.

### Does this PR introduce _any_ user-facing change?
When upgrading to 0.5 from 0.4, fix potential reserve slot failure scenario.(only replica location).

### How was this patch tested?
Manual test.

Closes #2968 from onebox-li/fix-reserve-compatibility.

Authored-by: onebox-li <[email protected]>
Signed-off-by: mingji <[email protected]>
  • Loading branch information
onebox-li authored and FMX committed Dec 3, 2024
1 parent 3dd810c commit 7102174
Showing 1 changed file with 1 addition and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,7 @@ object ControlMessages extends Logging {
val pbReserveSlots = PbReserveSlots.parseFrom(message.getPayload)
val userIdentifier = PbSerDeUtils.fromPbUserIdentifier(pbReserveSlots.getUserIdentifier)
val (primaryLocations, replicateLocations) =
if (pbReserveSlots.getPrimaryLocationsList.isEmpty) {
if (pbReserveSlots.getPrimaryLocationsList.isEmpty && pbReserveSlots.getReplicaLocationsList.isEmpty) {
PbSerDeUtils.fromPbPackedPartitionLocationsPair(
pbReserveSlots.getPartitionLocationsPair)
} else {
Expand Down

0 comments on commit 7102174

Please sign in to comment.