File tree Expand file tree Collapse file tree 2 files changed +4
-0
lines changed
core/src/main/scala/org/apache/spark Expand file tree Collapse file tree 2 files changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,8 @@ private[v1] class ExecutorListResource(ui: SparkUI) {
29
29
def executorList (): Seq [ExecutorSummary ] = {
30
30
val listener = ui.executorsListener
31
31
listener.synchronized {
32
+ // The follow codes should be protected by `listener` to make sure no executors will be
33
+ // removed before we query their status. See SPARK-12784.
32
34
val storageStatusList = listener.storageStatusList
33
35
(0 until storageStatusList.size).map { statusId =>
34
36
ExecutorsPage .getExecInfo(listener, statusId)
Original file line number Diff line number Diff line change @@ -53,6 +53,8 @@ private[ui] class ExecutorsPage(
53
53
54
54
def render (request : HttpServletRequest ): Seq [Node ] = {
55
55
val (storageStatusList, execInfo) = listener.synchronized {
56
+ // The follow codes should be protected by `listener` to make sure no executors will be
57
+ // removed before we query their status. See SPARK-12784.
56
58
val _storageStatusList = listener.storageStatusList
57
59
val _execInfo = {
58
60
for (statusId <- 0 until _storageStatusList.size)
You can’t perform that action at this time.
0 commit comments