AngersZhuuuu commented on code in PR #52792:
URL: https://github.com/apache/spark/pull/52792#discussion_r2540242588


##########
core/src/main/scala/org/apache/spark/executor/Executor.scala:
##########
@@ -381,7 +381,28 @@ private[spark] class Executor(
       tr.kill(killMark._1, killMark._2)
       killMarks.remove(taskId)
     }
-    threadPool.execute(tr)
+    try {
+      threadPool.execute(tr)
+    } catch {
+      case t: Throwable =>
+        try {
+          logError(log"Executor launch task ${MDC(TASK_NAME, 
taskDescription.name)} failed," +
+            log" reason: ${MDC(REASON, t.getMessage)}")
+          context.statusUpdate(
+            taskDescription.taskId,
+            TaskState.FAILED,
+            env.closureSerializer.newInstance().serialize(new 
ExceptionFailure(t, Seq.empty)))
+        } catch {
+          case oom: OutOfMemoryError =>

Review Comment:
   > are we expecting `context.statusUpdate` to throw OOM?
   
   When sending RPC, if client is not created, need to create new connect task, 
may need create a new thread, can throw OOM since can't create thread. but 
always this case won't happen since client with driver should always be already 
created



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

Reply via email to