Skip to content

Commit 82c010b

Browse files
committed
[AURON #1961] Fix Spark 4.0+: unit test catalyst codegen failure due to session artifact isolation
1 parent 7f2742b commit 82c010b

3 files changed

Lines changed: 12 additions & 21 deletions

File tree

spark-extension-shims-spark/src/test/scala/org/apache/auron/AuronFunctionSuite.scala

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import java.text.SimpleDateFormat
2020

2121
import org.apache.spark.sql.{AuronQueryTest, Row}
2222

23-
import org.apache.auron.util.{AuronTestUtils, SparkVersionUtil}
23+
import org.apache.auron.util.AuronTestUtils
2424

2525
class AuronFunctionSuite extends AuronQueryTest with BaseAuronSQLSuite {
2626

@@ -83,9 +83,6 @@ class AuronFunctionSuite extends AuronQueryTest with BaseAuronSQLSuite {
8383
}
8484

8585
test("spark hash function") {
86-
// TODO: Fix flaky codegen cache failures in SPARK-4.x, https://github.com/apache/auron/issues/1961
87-
assume(!SparkVersionUtil.isSparkV40OrGreater)
88-
8986
withTable("t1") {
9087
sql("create table t1 using parquet as select array(1, 2) as arr")
9188
val functions =
@@ -97,9 +94,6 @@ class AuronFunctionSuite extends AuronQueryTest with BaseAuronSQLSuite {
9794
}
9895

9996
test("expm1 function") {
100-
// TODO: Fix flaky codegen cache failures in SPARK-4.x, https://github.com/apache/auron/issues/1961
101-
assume(!SparkVersionUtil.isSparkV40OrGreater)
102-
10397
withTable("t1") {
10498
sql("create table t1(c1 double) using parquet")
10599
sql("insert into t1 values(0.0), (1.1), (2.2)")

spark-extension-shims-spark/src/test/scala/org/apache/auron/AuronQuerySuite.scala

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import org.apache.spark.sql.{AuronQueryTest, Row}
2020
import org.apache.spark.sql.execution.joins.auron.plan.NativeBroadcastJoinExec
2121

2222
import org.apache.auron.spark.configuration.SparkAuronConfiguration
23-
import org.apache.auron.util.{AuronTestUtils, SparkVersionUtil}
23+
import org.apache.auron.util.AuronTestUtils
2424

2525
class AuronQuerySuite extends AuronQueryTest with BaseAuronSQLSuite with AuronSQLTestHelper {
2626
import testImplicits._
@@ -42,9 +42,6 @@ class AuronQuerySuite extends AuronQueryTest with BaseAuronSQLSuite with AuronSQ
4242
}
4343

4444
test("test filter with year function") {
45-
// TODO: Fix flaky codegen cache failures in SPARK-4.x, https://github.com/apache/auron/issues/1961
46-
assume(!SparkVersionUtil.isSparkV40OrGreater)
47-
4845
withTable("t1") {
4946
sql("create table t1 using parquet as select '2024-12-18' as event_time")
5047
checkSparkAnswerAndOperator(s"""
@@ -57,9 +54,6 @@ class AuronQuerySuite extends AuronQueryTest with BaseAuronSQLSuite with AuronSQ
5754
}
5855

5956
test("test select multiple spark ext functions with the same signature") {
60-
// TODO: Fix flaky codegen cache failures in SPARK-4.x, https://github.com/apache/auron/issues/1961
61-
assume(!SparkVersionUtil.isSparkV40OrGreater)
62-
6357
withTable("t1") {
6458
sql("create table t1 using parquet as select '2024-12-18' as event_time")
6559
checkSparkAnswerAndOperator("select year(event_time), month(event_time) from t1")
@@ -177,9 +171,6 @@ class AuronQuerySuite extends AuronQueryTest with BaseAuronSQLSuite with AuronSQ
177171
}
178172

179173
test("floor function with long input") {
180-
// TODO: Fix flaky codegen cache failures in SPARK-4.x, https://github.com/apache/auron/issues/1961
181-
assume(!SparkVersionUtil.isSparkV40OrGreater)
182-
183174
withTable("t1") {
184175
sql("create table t1 using parquet as select 1L as c1, 2.2 as c2")
185176
checkSparkAnswerAndOperator("select floor(c1), floor(c2) from t1")

spark-extension-shims-spark/src/test/scala/org/apache/auron/BaseAuronSQLSuite.scala

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import org.apache.commons.io.FileUtils
2222
import org.apache.spark.SparkConf
2323
import org.apache.spark.sql.test.SharedSparkSession
2424

25+
import org.apache.auron.util.SparkVersionUtil
26+
2527
trait BaseAuronSQLSuite extends SharedSparkSession {
2628
protected val suiteWorkspace: String = getClass.getResource("/").getPath + "auron-tests-workdir"
2729
protected val warehouseDir: String = suiteWorkspace + "/spark-warehouse"
@@ -49,7 +51,7 @@ trait BaseAuronSQLSuite extends SharedSparkSession {
4951
}
5052

5153
override protected def sparkConf: SparkConf = {
52-
super.sparkConf
54+
val conf = super.sparkConf
5355
.set("spark.sql.extensions", "org.apache.spark.sql.auron.AuronSparkSessionExtension")
5456
.set(
5557
"spark.shuffle.manager",
@@ -58,8 +60,12 @@ trait BaseAuronSQLSuite extends SharedSparkSession {
5860
.set("spark.auron.enable", "true")
5961
.set("spark.ui.enabled", "false")
6062
.set("spark.sql.warehouse.dir", warehouseDir)
61-
// Avoid the code size overflow error in Spark code generation.
62-
.set("spark.sql.codegen.wholeStage", "false")
63-
.set("spark.sql.codegen.factoryMode", "NO_CODEGEN")
63+
64+
if (SparkVersionUtil.isSparkV40OrGreater) {
65+
// Spark 4.0+: Disable session artifact isolation, align with Spark 3.x default group
66+
// Fix codegen failure (missing Catalyst expressions Object class)
67+
conf.set("spark.sql.artifact.isolation.enabled", "false")
68+
}
69+
conf
6470
}
6571
}

0 commit comments

Comments
 (0)