Skip to content

[auto-merge] release/26.08 to main [skip ci] [bot] - #15412

Merged
nvauto merged 10 commits into
mainfrom
release/26.08
Jul 31, 2026
Merged

[auto-merge] release/26.08 to main [skip ci] [bot]#15412
nvauto merged 10 commits into
mainfrom
release/26.08

Conversation

@nvauto

@nvauto nvauto commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

auto-merge triggered by github actions on release/26.08 to create a PR keeping main up-to-date. If this PR is unable to be merged due to conflicts, it will remain open until manually fix.

…in for Apache Spark rename (#15114)

Contributes to #15107

### Description

The https://github.com/nvidia/spark-rapids repository has been renamed
to https://github.com/nvidia/cudf-spark. This PR rolls out name changes
for content and links referenced in the documentation.

Not changed here are documentation updates for configurations.
Configurations will be added to support the new product name (removing
rapids) with a deprecation period. Documentation for configurations can
be updated when new configuration names are enabled.

Note that this PR modifies some generated documentation, so pre-merge CI
should be enabled.

### Checklists

Documentation
- [X] Updated for new or modified user-facing features or behaviors
- [ ] No user-facing change

Testing
- [ ] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [X] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [X] Not required

---------

Signed-off-by: Sameer Raheja <sraheja@.nvidia.com>
Co-authored-by: Sameer Raheja <sraheja@.nvidia.com>
Co-authored-by: Gary Shen <gashen@nvidia.com>
@nvauto
nvauto requested a review from a team as a code owner July 29, 2026 00:50
@nvauto

nvauto commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

Fixes #15234 

## Description

Add native GPU support for Databricks Delta’s CheckOverflowInTableWrite
expression on DBR 17.3. The expression now delegates to GpuCast while
preserving Delta’s DELTA_CAST_OVERFLOW_IN_TABLE_WRITE error behavior.

The change also:

  - Registers the expression rule with the DBR 17.3 Delta provider.
  - Adds success and overflow integration tests.
- Disables the CPU-expression bridge in the focused tests to prove
native GPU replacement.
- Imports the DBR spark-protobuf_2.13 artifact required by the
integration-test build.

  ## Verification

Tested on DBR 17.3 GPU ML:

  - Built successfully with ./jenkins/databricks/build.sh.
  - Focused MERGE success and overflow tests passed.
- Verified GpuRapidsProcessDeltaMergeJoinExec was used with the CPU
bridge disabled.
  - Verified overflow retains DELTA_CAST_OVERFLOW_IN_TABLE_WRITE

## Performance Results

On DBR 17.3.x GPU ML, a 10-million-row matched Delta MERGE was measured
with 16 partitions, one warm-up, and three alternating runs per mode.
Native CheckOverflowInTableWrite support reduced median wall time from
11.447s to 8.559s, a 1.337× speedup and 25.23% reduction in elapsed
time. Median rewrite time decreased from 4.648s to 1.784s, while scan
times remained comparable.


### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Rahul Prabhu <raprabhu@nvidia.com>
@nvauto

nvauto commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

…5415)

Fixes #15405.

### Description

`test_orc_gpu_write_cpu_read_timestamp_in_non_utc_timezone` expects ORC
timestamp
writes to fall back to CPU when the JVM and Spark session use a non-UTC
timezone.
On Spark versions whose write plan exposes `WriteFilesExec`, that node
is also
reported as a CPU fallback because its parent write command cannot run
on GPU, but
the test only allowed `DataWritingCommandExec`.

This change allows `WriteFilesExec` only in the existing non-UTC allow
list. UTC
test behavior remains unchanged.

Validation:
- `build/buildall --profile=noSnapshots -P=4` built the Scala 2.12 uber
jar with
  20 shims.
- `build/buildall --scala213 --profile=noSnapshots -P=4` built the Scala
2.13
  uber jar with all 19 supported shims.
-
`orc_test.py::test_orc_gpu_write_cpu_read_timestamp_in_non_utc_timezone`
passed
with `TZ=Asia/Shanghai` on all 20 supported Scala 2.12 Spark
installations and
all 19 supported Scala 2.13 Spark installations from Spark 3.3.0 through
4.2.0.

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

Signed-off-by: Chong Gao <chongg@nvidia.com>
Co-authored-by: Chong Gao <res_life@163.com>
@nvauto

nvauto commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

@sameerz sameerz mentioned this pull request Jul 29, 2026
8 tasks
#15413)

Fixes #15379.

### Description

- Propagate `BroadcastHashJoinExec.isSkewJoin` into
`GpuBroadcastHashJoinExec` on Spark 4.2 so AQE skew-optimized broadcast
joins keep the flag after GPU conversion, matching Spark's SPARK-44065
plan display.
- Override `nodeName` in `GpuBroadcastHashJoinExecBase` to append
`(skew=true)` when `isSkewJoin` is set, so GPU explain output mirrors
CPU behavior.
- Split the Spark 4.2 BHJ shim from the shared `spark340` path because
`isSkewJoin` only exists on BHJ in Spark 4.2+, avoiding compile failures
on older shims.
- Add `BroadcastHashJoinSkewSuite` for Spark 4.2 to assert the GPU join
preserves `isSkewJoin` and the plan-string marker.

Validation:
- `mvn -s ~/.m2/settings_art.xml -f scala2.13/pom.xml -Dbuildver=420
-Dcuda.version=cuda13 -DskipTests verify -pl sql-plugin,tests -am`
- `mvn -s ~/.m2/settings_art.xml -Dbuildver=330 -Dcuda.version=cuda13
-DskipTests verify -pl sql-plugin -am`
- `mvn -s ~/.m2/settings_art.xml -f scala2.13/pom.xml -Dbuildver=420
-Dcuda.version=cuda13 package -pl tests -am
-DwildcardSuites=com.nvidia.spark.rapids.BroadcastHashJoinSkewSuite`

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

Signed-off-by: Firestarman <firestarmanllc@gmail.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

nvliyuan pushed a commit that referenced this pull request Jul 30, 2026
Contributes to #15107

### Description

Address merge conflict in
#15412

### Checklists

Documentation
- [X] Updated for new or modified user-facing features or behaviors
- [ ] No user-facing change

Testing
- [ ] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [X] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [X] Not required

Signed-off-by: Sameer Raheja <sraheja@.nvidia.com>
Co-authored-by: Sameer Raheja <sraheja@.nvidia.com>
Fixes #15323.

### Description

This is a follow-up to #15360 that makes the Iceberg S3 path regression
test reliable with a REST catalog.

The test previously constructed the problematic path by overriding
`write.data.path` with the configured warehouse. For a REST catalog, the
warehouse value can be a logical identifier rather than a physical S3
location.

The updated test follows
`test_iceberg_parquet_read_from_url_encoded_path`:

- Adds a string containing a raw space as special-case partition data.
The value is valid in an S3 object key but invalid in a URI unless
encoded.
- Creates an Iceberg table partitioned by that column and lets Iceberg
construct the data-file path through its normal partition writer.
- Continues to run only with the REST catalog, where the optimized S3
reader is exercised.
- Verifies the startup-only `spark.rapids.perfio.s3.enabled` setting
through SparkConf instead of querying an executor-initialized PerfIO
singleton from the driver.

Testing performed:

- The REST-catalog run completed 184 existing tests successfully; the
three new parameterized variants reached table setup and exposed the
driver-side PerfIO assertion corrected here.
- `python3 -m py_compile
integration_tests/src/main/python/iceberg/iceberg_test.py`
- `git diff --check`

A final REST-catalog pipeline rerun is pending.

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Ray Liu <liurenjie2008@gmail.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

…ors for OSS delta [databricks] (#15368)

Fixes #15326.

### Description

The CDF read with deletion vectors currently fails. Two things were
missing to support this case:

- The `IF_NOT_CONTAINED` row index filter type support. The Delta CDC
reader can use this type of row index filter.
- Inline deletion vector support. The CDC reader creates inline deletion
vectors.

This PR adds those supports based on
NVIDIA/cudf#23402 for OSS Delta. The plugin
now can load inline deletion vectors and process the `IF_NOT_CONTAINED`
filter properly with all 3 Delta readers.

Note that the issue exists only with the native readers
(`GpuDeltaParquetFileFormatBase2`). The legacy reader
(`GpuDeltaParquetFileFormatBase`) does not have this issue.

Databricks readers have the same issue, and will be fixed in
#15365.

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Jihoon Son <ghoonson@gmail.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

Fixes #15394

### Description

On OSS Spark 4.0 with Delta Lake 4.0, `CREATE OR REPLACE TABLE ... USING
DELTA AS SELECT ...` succeeds on CPU but fails on GPU with:

```text
[UNSUPPORTED_FEATURE.TABLE_OPERATION] Table ... does not support truncate in batch mode
```

Spark 4 plans RTAS as an unconditional `OverwriteByExpression`. Its
table capability check therefore requires the staged table to support
`TRUNCATE`.

The RAPIDS staged Delta table advertised only `V1_BATCH_WRITE`, and its
write builder did not implement `SupportsTruncate`. In addition, the
Delta provider's `OverwriteByExpressionExecV1` handling recognized
regular `DeltaTableV2` tables but not the RAPIDS staged Delta table used
by atomic RTAS.

In this PR:
- Added `TRUNCATE` to the capabilities advertised by
`GpuStagedDeltaTableV2`.
- Implemented `SupportsTruncate` in the staged Delta V1 write builder.
- Tags and converts `OverwriteByExpressionExecV1` for RAPIDS staged
Delta tables to `GpuOverwriteByExpressionExecV1`.
- Applied the staged-table handling to the Delta 3.3, 4.0, and 4.1
provider implementations.
- Preserved the existing behavior for regular `DeltaTableV2` tables and
continues to reject unrelated table implementations.
- Limits the existing Delta issue #4671 RTAS xfails to the affected
Spark 3.5 releases instead of also applying them to Spark 4.
- Added an integration regression test.

### Testing

#### OSS Spark 4.0 / Delta Lake 4.0

Focused integration test:

```text
TEST=test_delta_rtas_truncate_capability
```

Result: `1 passed, 39635 deselected`.

Broader focused RTAS selection:

```text
TEST="test_delta_rtas_truncate_capability or test_delta_rtas_sql"
```

Result: `3 passed, 1 skipped, 39632 deselected`.

### Checklists

Documentation

- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing

- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests  
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance

- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Niranjan Artal <nartal@nvidia.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

…5416)

Fixes #15382.

### Description

- Match Spark 4.2 (`SPARK-56663`) `date_trunc` semantics at
`Long.MinValue` micros: truncation underflow must raise
`ArithmeticException` instead of returning a wrapped positive timestamp
on GPU.
- Route the check through `TruncTimestampShims` so Spark 4.2 enables the
overflow check while older supported Spark lines keep the previous no-op
behavior, without runtime version compares in common code.
- Add `test_date_trunc_long_min_value_overflow` for `YEAR` and
`MILLISECOND` on Spark 4.2+, comparing CPU/GPU exception behavior and
validating the GPU plan includes `GpuProjectExec`.
- Validated with:
- `mvn -s /home/liangcail/.m2/settings_art.xml -f scala2.13/pom.xml -pl
sql-plugin -Dbuildver=420 -Dcuda.version=cuda13 -DskipTests clean
compile`
- `mvn -s /home/liangcail/.m2/settings_art.xml -f scala2.13/pom.xml -pl
sql-plugin -Dbuildver=413 -Dcuda.version=cuda13 -DskipTests clean
compile`
- `mvn -s /home/liangcail/.m2/settings_art.xml -f scala2.13/pom.xml
-Dbuildver=420 -Dcuda.version=cuda13 -DskipTests validate`
- `mvn -s /home/liangcail/.m2/settings_art.xml -f scala2.13/pom.xml
-Dbuildver=413 -Dcuda.version=cuda13 -DskipTests validate`

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Firestarman <firestarmanllc@gmail.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

nvliyuan added a commit that referenced this pull request Jul 30, 2026
Resolves the latest merge conflicts in #15412 after #15423 merged.

### Description

Merge the current `release/26.08` head into the current `main` head.

The initial conflicts were the root and Scala 2.13 project versions.
Both were resolved by retaining main's `26.10.0-SNAPSHOT` version
instead of the release branch's `26.08.0-SNAPSHOT` version.

The branch was refreshed again after additional PRs landed on
`release/26.08`. The current diff includes all release updates added
after #15423, including:
- #15413 — preserve Spark 4.2 BroadcastHashJoin `isSkewJoin`
- #15422 — fix Iceberg REST S3 path regression coverage
- #15368 — OSS Delta deletion-vector updates
- #15411 — fix OSS Delta RTAS on Spark 4.x+
- #15416 — match Spark 4.2 `date_trunc` overflow behavior

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [ ] Added or modified tests to cover new code paths
- [x] Covered by existing tests
      (The included release commits retain their original tests.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

### Validation

- `git diff --check`
- Parsed both initially resolved POM files as XML
- `python3 -m py_compile` for the modified Iceberg, Delta, and date-time
integration tests

IMPORTANT: Merge this PR using **Create a merge commit** so the release
commit ancestry is preserved and #15412 can close automatically.

---------

Signed-off-by: Sameer Raheja <sraheja@.nvidia.com>
Signed-off-by: Rahul Prabhu <raprabhu@nvidia.com>
Signed-off-by: Chong Gao <chongg@nvidia.com>
Signed-off-by: Firestarman <firestarmanllc@gmail.com>
Signed-off-by: Ray Liu <liurenjie2008@gmail.com>
Signed-off-by: liyuan <yuali@nvidia.com>
Signed-off-by: Jihoon Son <ghoonson@gmail.com>
Signed-off-by: Niranjan Artal <nartal@nvidia.com>
Co-authored-by: Sameer Raheja <sameerz@users.noreply.github.com>
Co-authored-by: Sameer Raheja <sraheja@.nvidia.com>
Co-authored-by: Gary Shen <gashen@nvidia.com>
Co-authored-by: Rahul Prabhu <100436830+sdrp713@users.noreply.github.com>
Co-authored-by: Chong Gao <chongg@nvidia.com>
Co-authored-by: Chong Gao <res_life@163.com>
Co-authored-by: Liangcai Li <firestarmanllc@gmail.com>
Co-authored-by: Renjie Liu <liurenjie2008@gmail.com>
Co-authored-by: Jihoon Son <ghoonson@gmail.com>
Co-authored-by: Niranjan Artal <50492963+nartal1@users.noreply.github.com>
Fixes #15418.

### Description

#15285 changed behavior, now
auto set shuffle manager. It impacts the behavior of Dataporc pipeline.

Dataproc's Spark 4.0.1 runtime uses a shuffle resolver ABI that differs
from the Apache Spark ABI expected by the RAPIDS Shuffle Manager. After
shuffle manager auto-configuration was enabled for Spark 4, workloads
that did not explicitly configure `spark.shuffle.manager` began
selecting the RAPIDS implementation and failed during shuffle output
commit with `NoSuchMethodError`.

Skip RAPIDS Shuffle Manager auto-configuration when
`spark.dataproc.engine` is present. This restores the previous behavior
on Dataproc by leaving `spark.shuffle.manager` unset, while continuing
to preserve any explicitly configured shuffle manager. The configuration
documentation is updated to describe this exception.

Added `RapidsPluginUtilsSuite` coverage for the Dataproc guard.

Validation:
- Spark 4.0.1 / Scala 2.13: `RapidsPluginUtilsSuite` passed (6 tests).
- Scalastyle passed across 1,701 files with no errors or warnings.

### Checklists

Documentation
- [x] Updated for new or modified user-facing features or behaviors
- [ ] No user-facing change

Testing
- [x] Added or modified tests to cover new code paths
- [ ] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Chong Gao <chongg@nvidia.com>
Co-authored-by: Chong Gao <res_life@163.com>
@nvauto

nvauto commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator Author

FAILURE - Unable to auto-merge. Manual operation is required.

{'message': 'Pull Request has merge conflicts', 'documentation_url': 'https://docs.github.com/rest/pulls/pulls#merge-a-pull-request', 'status': '405'}

Please use the following steps to fix the merge conflicts manually:

# Assume upstream is NVIDIA/cudf-spark remote
git fetch upstream release/26.08 main
git checkout -b fix-auto-merge-conflict-15412 upstream/main
git merge upstream/release/26.08
# Fix any merge conflicts caused by this merge
git commit -am "Merge release/26.08 into main"
git push <personal fork> fix-auto-merge-conflict-15412
# Open a PR targets NVIDIA/cudf-spark main

IMPORTANT: Before merging this PR, be sure to change the merging strategy to Create a merge commit (repo admin only).

Once this PR is merged, the auto-merge PR should automatically be closed since it contains the same commit hashes

GaryShen2008 added a commit that referenced this pull request Jul 31, 2026
### Description

#15434 was squash-merged, so its code reached `main` but the
`release/26.08` commit ancestry was lost. As a result, auto-merge PR
#15412 remained open and conflicting.

This PR records the missing ancestry by merging the current
`release/26.08` head into the current `main` head while keeping the main
tree unchanged.

### Verification

- The merge commit has two parents:
  - current main: `e1e1ba3cfd7d24d0867759d5731bf2c65210c1c5`
  - release/26.08: `e5bcfffd061bc9b58fdf138010b5b6ca61d934e3`
- `git diff origin/main...HEAD` is empty.
- Both POM version conflicts retained main's `26.10.0-SNAPSHOT` value.
- `git diff --check` passes.

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [ ] Added or modified tests to cover new code paths
- [x] Covered by existing tests
      (No tree changes; ancestry only.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

IMPORTANT: This PR must be merged using **Create a merge commit**.
Squash or rebase would discard the release parent again and leave #15412
unresolved.
)

Fixes #15454.

### Description

- Convert CollectSet float/double aggregation buffers between GPU
logical values and Spark 4.2 CPU normalized bit-pattern keys during
mixed hashAgg stages, so NaN and signed-zero uniqueness matches pure
CPU.
- Add `collectSetCpuBufferElementType` shim (bit-keyed on Spark 4.2,
identity earlier) and CollectSet-specific GPU↔CPU buffer converters used
by `GpuOverrides`.
- Validate with Spark 4.2.0 / Scala 2.13 and `DATAGEN_SEED=1785353212`:
`352 passed` including the previously failing
`test_hash_groupby_collect_partial_replace_fallback` /
`test_hash_groupby_collect_partial_replace_with_distinct_fallback` Float
cases; also `mvn -f scala2.13/pom.xml -Dbuildver=420
-Dcuda.version=cuda13 -DskipTests -pl sql-plugin verify`.

### Checklists

Documentation
- [ ] Updated for new or modified user-facing features or behaviors
- [x] No user-facing change

Testing
- [ ] Added or modified tests to cover new code paths
- [x] Covered by existing tests
(Please provide the names of the existing tests in the PR description.)
- [ ] Not required

Performance
- [ ] Tests ran and results are added in the PR description
- [ ] Issue filed with a link in the PR description
- [x] Not required

---------

Signed-off-by: Firestarman <firestarmanllc@gmail.com>
@nvauto
nvauto merged commit 3f2c96c into main Jul 31, 2026
7 checks passed
@nvauto

nvauto commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator Author

SUCCESS - auto-merge

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants