Details
-
Bug
-
Status: Resolved
-
Trivial
-
Resolution: Fixed
-
2.0.0
-
None
Description
The TaskSchedulerImpl updates the set of executors and hosts in each call to resourceOffers. During this call, it also tracks whether there are any new executors observed in newExecAvail:
executorIdToHost(o.executorId) = o.host executorIdToTaskCount.getOrElseUpdate(o.executorId, 0) if (!executorsByHost.contains(o.host)) { executorsByHost(o.host) = new HashSet[String]() executorAdded(o.executorId, o.host) newExecAvail = true }
However, this only detects when a new host is added, not when an additional executor is added to an existing host (a relatively common event in dynamic allocation).
The end result is that task locality and failedEpochs is not updated correctly for new executors.