From 8cfe79bc81e48b8a990dcad5d08fa9e4af706d5b Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 3 Aug 2020 21:39:49 -0700 Subject: [PATCH] [SPARK-32524][SQL][TESTS] SharedSparkSession should clean up InMemoryRelation.ser --- .../apache/spark/sql/execution/columnar/InMemoryRelation.scala | 3 +++ .../scala/org/apache/spark/sql/test/SharedSparkSession.scala | 2 ++ 2 files changed, 5 insertions(+) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/columnar/InMemoryRelation.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/columnar/InMemoryRelation.scala index be3dc5934e84..427c01e82fda 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/columnar/InMemoryRelation.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/columnar/InMemoryRelation.scala @@ -277,6 +277,9 @@ object InMemoryRelation { ser.get } + /* Visible for testing */ + private[spark] def clearSerializer(): Unit = synchronized { ser = None } + def convertToColumnarIfPossible(plan: SparkPlan): SparkPlan = plan match { case gen: WholeStageCodegenExec => gen.child match { case c2r: ColumnarToRowTransition => c2r.child match { diff --git a/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSparkSession.scala b/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSparkSession.scala index ee29b4b8fb32..a622d11ac89a 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSparkSession.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/test/SharedSparkSession.scala @@ -26,6 +26,7 @@ import org.apache.spark.{DebugFilesystem, SparkConf} import org.apache.spark.internal.config.UNSAFE_EXCEPTION_ON_MEMORY_LEAK import org.apache.spark.sql.{SparkSession, SQLContext} import org.apache.spark.sql.catalyst.optimizer.ConvertToLocalRelation +import org.apache.spark.sql.execution.columnar.InMemoryRelation.clearSerializer import org.apache.spark.sql.internal.{SQLConf, StaticSQLConf} trait SharedSparkSession extends SQLTestUtils with SharedSparkSessionBase { @@ -63,6 +64,7 @@ trait SharedSparkSessionBase with Eventually { self: Suite => protected def sparkConf = { + clearSerializer() val conf = new SparkConf() .set("spark.hadoop.fs.file.impl", classOf[DebugFilesystem].getName) .set(UNSAFE_EXCEPTION_ON_MEMORY_LEAK, true)