This is an automated email from the ASF dual-hosted git repository.

mbutrovich pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new ffcebaa700 ci: fix Spark 4.0.2/JDK 21 flake by enabling per-suite 
dedicated JVMs (#4327) (#4360)
ffcebaa700 is described below

commit ffcebaa70056b7a50876242d6748e7ef6d7ced86
Author: Andy Grove <[email protected]>
AuthorDate: Mon May 18 13:27:39 2026 -0600

    ci: fix Spark 4.0.2/JDK 21 flake by enabling per-suite dedicated JVMs 
(#4327) (#4360)
---
 .github/workflows/spark_sql_test.yml | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/spark_sql_test.yml 
b/.github/workflows/spark_sql_test.yml
index 51b8edc23b..e9fa4df1e5 100644
--- a/.github/workflows/spark_sql_test.yml
+++ b/.github/workflows/spark_sql_test.yml
@@ -176,8 +176,24 @@ jobs:
         run: |
           cd apache-spark
           rm -rf /root/.m2/repository/org/apache/parquet # somehow parquet 
cache requires cleanups
+          # SERIAL_SBT_TESTS gates SparkParallelTestGrouping in
+          # project/SparkBuild.scala. For Spark 4.0.2 on JDK 21 we
+          # leave it unset so the grouping is installed and
+          # DEDICATED_JVM_SBT_TESTS below actually forks a dedicated
+          # JVM per listed suite, working around the V1/V2 Parquet and
+          # Orc source-suite cross-suite file-stream leak under JDK 21
+          # (issue #4327). For other rows we keep it set to reduce
+          # peak memory on standard 7 GB runners.
+          if [ "${{ matrix.config.spark-short }}" != "4.0" ] || [ "${{ 
matrix.config.java }}" != "21" ]; then
+            export SERIAL_SBT_TESTS=1
+          fi
+          # Cap parallel forked test JVMs at 1 so that even when
+          # SparkParallelTestGrouping is enabled we don't blow the
+          # 7 GB runner budget (each forked test JVM has -Xmx2g).
           NOLINT_ON_COMPILE=true ENABLE_COMET=true ENABLE_COMET_ONHEAP=true 
COMET_PARQUET_SCAN_IMPL=${{ matrix.config.scan-impl }} 
ENABLE_COMET_LOG_FALLBACK_REASONS=${{ github.event.inputs.collect-fallback-logs 
|| 'false' }} \
-            build/sbt -Dsbt.log.noformat=true -mem $SBT_MEM ${{ 
matrix.module.args1 }} "${{ matrix.module.args2 }}"
+            build/sbt -Dsbt.log.noformat=true -mem $SBT_MEM \
+              'set Global / concurrentRestrictions := 
Seq(Tags.limit(Tags.ForkedTestGroup, 1))' \
+              ${{ matrix.module.args1 }} "${{ matrix.module.args2 }}"
           if [ "${{ github.event.inputs.collect-fallback-logs }}" = "true" ]; 
then
             find . -type f -name "unit-tests.log" -print0 | xargs -0 grep -h 
"Comet cannot accelerate" | sed 's/.*Comet cannot accelerate/Comet cannot 
accelerate/' | sort -u > fallback.log
           fi
@@ -186,9 +202,6 @@ jobs:
           # Standard GitHub runners have 7 GB RAM; cap SBT heap so forked test
           # JVMs fit alongside it.
           SBT_MEM: "3072"
-          # Disable parallel test execution to reduce peak memory usage —
-          # mirrors what apache/spark does on GitHub Actions.
-          SERIAL_SBT_TESTS: "1"
           # Mirror Spark's own JDK 21 / 25 CI workaround. apache/spark's
           # build_java21.yml and build_java25.yml set this same env var to
           # process-isolate the V1/V2 Parquet and Orc source suites because


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to