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]

Reply via email to