tianhanhu commented on code in PR #47793:
URL: https://github.com/apache/spark/pull/47793#discussion_r1735554271
##########
core/src/main/scala/org/apache/spark/scheduler/TaskSetManager.scala:
##########
@@ -143,8 +143,18 @@ private[spark] class TaskSetManager(
private var calculatedTasks = 0
private[scheduler] val taskSetExcludelistHelperOpt:
Option[TaskSetExcludelist] = {
- healthTracker.map { _ =>
- new TaskSetExcludelist(sched.sc.listenerBus, conf, stageId,
taskSet.stageAttemptId, clock)
+ if (TaskSetExcludelist.isExcludeOnFailureEnabled(conf)) {
+ Some(new TaskSetExcludelist(sched.sc.listenerBus, conf, stageId,
+ taskSet.stageAttemptId, clock))
+ } else if (healthTracker.isDefined) {
+ // If we enabled exclusion at application level but not at taskset level
exclusion, we create
+ // TaskSetExcludelist in dry run mode.
Review Comment:
I would think having an explicit conf for "whether creating
TaskSetExcludelist in dry-run mode" would be overkilling, especially since we
already have dozens of configs for exclusion feature.
The whole purpose of having a dry run mode for `TaskSetExcludeList` here is
that in a case where only healthtracker is enabled and TaskSetExcludeList is
not, we can still have a way to collect data for application level exclusion.
--
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]