Github user vanzin commented on a diff in the pull request: https://github.com/apache/spark/pull/22335#discussion_r215358096 --- Diff: core/src/main/scala/org/apache/spark/status/AppStatusListener.scala --- @@ -646,8 +646,17 @@ private[spark] class AppStatusListener( } override def onUnpersistRDD(event: SparkListenerUnpersistRDD): Unit = { - liveRDDs.remove(event.rddId) - kvstore.delete(classOf[RDDStorageInfoWrapper], event.rddId) + while (true) { --- End diff -- There's a single thread that calls this method (or any other listener method in this class). But I'm kinda wondering what's the point of the loop in the first place... It seems you'll get into an infinite loop if for some reason `rdd.isEmpty()` returns false.
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org