Skip to content

[VL] adding spark-4.2 to nightly build; fix nightly build on iceberg-1.1 - #13327

Open
zhouyuan wants to merge 1 commit into
apache:mainfrom
zhouyuan:fix-velox-nightly
Open

zhouyuan wants to merge 1 commit into
apache:mainfrom
zhouyuan:fix-velox-nightly

Conversation

@zhouyuan

Copy link
Copy Markdown
Member

What changes are proposed in this pull request?

fix nightly build
SparkReadOptions.SCAN_TASK_SET_ID is removed in Iceberg 1.11. 1.11 finds staged scans by registering the table in SparkTableCache and loading by the set id.

How was this patch tested?

pass GHA

Was this patch authored or co-authored using generative AI tooling?

Signed-off-by: Yuan <yuanzhou@apache.org>
Copilot AI balanced review requested due to automatic review settings October 15, 2026 14:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Copilot review overview

11 open findings
What changed in this PR

Updates Velox nightly CI to include Spark 4.2 builds and adjusts Iceberg staged-scan testing to work with Iceberg 1.11’s removal of SparkReadOptions.SCAN_TASK_SET_ID.

Changes:

  • Update Iceberg staged scan test to use SparkTableCache + string option key instead of SparkReadOptions.SCAN_TASK_SET_ID.
  • Add Spark 4.2 build profiles to Velox nightly workflow (Java 17/21).
  • Reorder/re-add Spark 3.5 SMJ test jobs in the workflow.
File Description
backends-velox/​src-iceberg/​test/​scala/​org/​apache/​gluten/​execution/​VeloxIcebergSuite.scala Switch staged scan setup to Iceberg 1.11-compatible table caching and task-set ID loading.
.github/​workflows/​velox_nightly.yml Add Spark 4.2 builds and adjust nightly job layout/test jobs.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

import org.apache.iceberg.hadoop.HadoopCatalog
import org.apache.iceberg.io.{ResolvingFileIO, StorageCredential}
import org.apache.iceberg.spark.{ScanTaskSetManager, Spark3Util, SparkCatalog, SparkReadOptions}
import org.apache.iceberg.spark.{ScanTaskSetManager, Spark3Util, SparkCatalog, SparkTableCache}
Comment on lines +122 to +128
val tableCache = SparkTableCache.get()
val tasks = table.newScan().planFiles()
try {
// Register the table under the task set ID and load by that ID, which resolves to a
// staged scan on both Iceberg 1.10 (needs the "scan-task-set-id" option) and Iceberg
// 1.11+ (removed SparkReadOptions.SCAN_TASK_SET_ID, resolves cached tables directly).
tableCache.add(taskSetId, table)
Comment on lines +134 to +135
.option("scan-task-set-id", taskSetId)
.load(taskSetId),
./build/mvn clean install -Pspark-3.5 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.2 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
@@ -170,110 +171,14 @@ jobs:
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -DskipTests -Dmaven.source.skip
cd $GITHUB_WORKSPACE/ && \
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.2 -Pscala-2.13 -Pjava-21 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-3.5 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.0 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.1 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -Piceberg -Phudi -Pdelta -Ppaimon -DskipTests -Dmaven.source.skip
./build/mvn clean install -Pspark-4.2 -Pscala-2.13 -Pjava-17 -Pbackends-velox -Pceleborn -Puniffle -DskipTests -Dmaven.source.skip
Comment on lines +134 to +135
.option("scan-task-set-id", taskSetId)
.load(taskSetId),
Comment on lines +538 to +544
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}-report
path: '**/surefire-reports/TEST-*.xml'
- name: Upload unit tests log files
if: ${{ !success() }}
uses: actions/upload-artifact@v4
Comment on lines +538 to +544
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}-report
path: '**/surefire-reports/TEST-*.xml'
- name: Upload unit tests log files
if: ${{ !success() }}
uses: actions/upload-artifact@v4

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants