dongjoon-hyun commented on code in PR #58054:
URL: https://github.com/apache/spark/pull/58054#discussion_r3825245402


##########
core/src/main/scala/org/apache/spark/scheduler/DAGScheduler.scala:
##########
@@ -2143,6 +2151,23 @@ private[spark] class DAGScheduler(
       return
     }
 
+    // While the executors are held there are zero free slots by construction, 
so the terminal
+    // gang admission check below would fail any pipelined job outright. Defer 
the submission
+    // and re-check on a timer instead, like a barrier job: the shortfall is 
not transient
+    // scarcity, and the job should wait for the resume.
+    if (hasPipelined && executorsHeld) {

Review Comment:
   Correcting the reply above: the warm-up-budget fix it describes was 
subsequently removed in 10732ea, together with the deferral itself -- the PR 
now excludes pipelined-shuffle jobs from the hold's scope, as documented on the 
finding-29 thread. This finding was what tipped that decision: the deferral 
needed to be correct across the asynchronous post-resume warm-up, and each fix 
there (including this one) narrowed the window rather than closing the class. 
With the deferral gone there is no re-post to race the resume; a pipelined job 
submitted while held fails its gang admission immediately and is resubmitted 
after the resume.



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