We enabled blacklist on our Spark application but recently we saw some wierd issue.
Our code is like
In mapPartitions stage, some executors has exception "Can't connect to host xxxxxx: Connection rest by peer" and tasks on them were failed, so all executors under this node were blacklisted, as well as this node. These executors did complete some tasks before blacklisted.
Then in next stage (groupByKey(...).map()), application failed with block fetch failure: IndexOutOfBound Exception when some healthy executor want to fetch block from one of above blacklisted executors.
It happened multiple times.