diff --git a/core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala b/core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala
index e91470800c82fd3ed37721605bed6e71ccadd9ce..777f31dc5e05340a1decd162d4f537f309132649 100644
--- a/core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala
+++ b/core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala
@@ -437,13 +437,13 @@ private[spark] class TaskSetManager(
     info.markSuccessful()
     removeRunningTask(tid)
     if (!successful(index)) {
+      tasksSuccessful += 1
       logInfo("Finished TID %s in %d ms on %s (progress: %d/%d)".format(
         tid, info.duration, info.host, tasksSuccessful, numTasks))
       sched.dagScheduler.taskEnded(
         tasks(index), Success, result.value, result.accumUpdates, info, result.metrics)
 
       // Mark successful and stop if all the tasks have succeeded.
-      tasksSuccessful += 1
       successful(index) = true
       if (tasksSuccessful == numTasks) {
         sched.taskSetFinished(this)