Github user jerryshao commented on a diff in the pull request: https://github.com/apache/spark/pull/6430#discussion_r31402037 --- Diff: core/src/main/scala/org/apache/spark/ExecutorAllocationManager.scala --- @@ -261,14 +270,19 @@ private[spark] class ExecutorAllocationManager( private def updateAndSyncNumExecutorsTarget(now: Long): Int = synchronized { val maxNeeded = maxNumExecutorsNeeded - if (maxNeeded < numExecutorsTarget) { + if (initializing && (maxNeeded < numExecutorsTarget)) { + // when ExecutorAllocationManager is still in initializing status, + // and the max number of needed executors is less than the initial number of executors, + // we just return without doing anything. + 0 + } else if (!initializing && maxNeeded < numExecutorsTarget) { // The target number exceeds the number we actually need, so stop adding new // executors and inform the cluster manager to cancel the extra pending requests val oldNumExecutorsTarget = numExecutorsTarget numExecutorsTarget = math.max(maxNeeded, minNumExecutors) client.requestTotalExecutors(numExecutorsTarget) numExecutorsToAdd = 1 - logInfo(s"Lowering target number of executors to $numExecutorsTarget because " + + logDebug(s"Lowering target number of executors to $numExecutorsTarget because " + --- End diff -- This is a little verbose, so change to `logDebug`.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org