Github user xuanyuanking commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20930#discussion_r182309137
  
    --- Diff: core/src/main/scala/org/apache/spark/scheduler/DAGScheduler.scala 
---
    @@ -1266,6 +1266,9 @@ class DAGScheduler(
                 }
                 if (failedEpoch.contains(execId) && smt.epoch <= 
failedEpoch(execId)) {
                   logInfo(s"Ignoring possibly bogus $smt completion from 
executor $execId")
    +            } else if (failedStages.contains(shuffleStage)) {
    --- End diff --
    
    This also confuse me before, as far as I'm concerned, the result task in 
such scenario(speculative task fail but original task success) is ok because it 
has no child stage, we can use the success task's result and 
`markStageAsFinished`. But for shuffle map task, it will cause inconformity 
between mapOutputTracker and stage's pendingPartitions, it must fix.
    I'm not sure of ResultTask's behavior, can you give some advice?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to