jiang13021 commented on code in PR #2639:
URL: https://github.com/apache/celeborn/pull/2639#discussion_r1694116102
##########
client/src/main/scala/org/apache/celeborn/client/LifecycleManager.scala:
##########
@@ -913,6 +928,54 @@ class LifecycleManager(val appUniqueId: String, val conf:
CelebornConf) extends
context.reply(pbReportShuffleFetchFailureResponse)
}
+ private def handleReportBarrierStageAttemptFailure(
+ context: RpcCallContext,
+ appShuffleId: Int,
+ appShuffleIdentifier: String): Unit = {
+
+ val shuffleIds = shuffleIdMapping.get(appShuffleId)
+ if (shuffleIds == null) {
+ throw new UnsupportedOperationException(s"unexpected! unknown
appShuffleId $appShuffleId")
+ }
+ var ret = true
+ shuffleIds.synchronized {
+ shuffleIds.get(appShuffleIdentifier) match {
+ case Some((shuffleId, true)) =>
+ ret = invokeAppShuffleTrackerCallback(appShuffleId)
Review Comment:
IMO, the `handleReportBarrierStageAttemptFailure` function serves two
purposes:
1. unregisterMapOutput
2. unregisterShuffle
However, DAGScheduler in spark will unregister all mapOutput before
resubmitting the barrier stage. Can we unregister the previous shuffle when
generating a new shuffleId for the barrier stage and remove
`handleReportBarrierStageAttemptFailure`?
--
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]