mridulm commented on a change in pull request #33034:
URL: https://github.com/apache/spark/pull/33034#discussion_r680642496
##########
File path:
common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/RemoteBlockPushResolver.java
##########
@@ -410,17 +500,42 @@ public MergeStatuses
finalizeShuffleMerge(FinalizeShuffleMerge msg) throws IOExc
+ "with the current attempt id %s stored in shuffle service for
application %s",
msg.appAttemptId, appShuffleInfo.attemptId, msg.appId));
}
- Map<Integer, AppShufflePartitionInfo> shufflePartitions =
- appShuffleInfo.partitions.remove(msg.shuffleId);
+ AtomicReference<Map<Integer, AppShufflePartitionInfo>>
shuffleMergePartitionsRef =
+ new AtomicReference<>(null);
+ // Metadata of the determinate stage shuffle can be safely removed as part
of finalizing
+ // shuffle merge. Currently once the shuffle is finalized for a
determinate stages, retry
+ // stages of the same shuffle will have shuffle push disabled.
+ if (msg.shuffleMergeId == DETERMINATE_SHUFFLE_MERGE_ID) {
+ AppShuffleMergePartitionsInfo appShuffleMergePartitionsInfo =
+ appShuffleInfo.shuffles.remove(msg.shuffleId);
+ if (appShuffleMergePartitionsInfo != null) {
+
shuffleMergePartitionsRef.set(appShuffleMergePartitionsInfo.shuffleMergePartitions);
+ }
+ } else {
+ appShuffleInfo.shuffles.compute(msg.shuffleId, (id, value) -> {
+ if (null == value || msg.shuffleMergeId != value.shuffleMergeId ||
Review comment:
Discussed with @venkata91 more - and I agree with the `nit` part of your
comment @Ngone51.
I was worried this is more serious than this ended up being - the behavior
would be the same for the `!=` and `>` + `<` cases : except for lack of cleanup
when `msg.shuffleMergeId > value.shuffleMergeId`.
@venkata91 please file a follow up jira and fix that along with tests for
this case.
Let me merge this given there will be no functional change after fixing this
new jira as well.
Thanks for surfacing this issue @Ngone51 !
--
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]