Skip to content

Fix GB300 and GH200 - #23517

Draft
KyleFromNVIDIA wants to merge 46 commits into
NVIDIA:mainfrom
KyleFromNVIDIA:fix-gb300
Draft

Fix GB300 and GH200#23517
KyleFromNVIDIA wants to merge 46 commits into
NVIDIA:mainfrom
KyleFromNVIDIA:fix-gb300

Conversation

@KyleFromNVIDIA

@KyleFromNVIDIA KyleFromNVIDIA commented Aug 3, 2026

Copy link
Copy Markdown
Member

Description

The cudaMemcpyBatchAsync with cudaMemcpySrcAccessOrderStream + cudaMemcpyFlagPreferOverlapWithCompute defers reading the copy source until the stream reaches the copy. cuDF passes local host vectors as sources in many places; they're destroyed before the stream gets there, so the deferred read hits freed memory.

Fixes add stream.synchronize() where a local host buffer is the copy source and goes out of scope before the copy completes.

Checklist

  • I am familiar with the [Contributing Guidelines][https://github.com/rapidsai/cudf/blob/HEAD/CONTRIBUTING.md).
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

There is a bug in the CUDA driver that caused `cudaMemcpyBatchAsync()`
to fail when `cudaMemcpyFlagPreferOverlapWithCompute` was passed.
Remove this flag and re-enable all GB300 and GH200 testing.
@KyleFromNVIDIA
KyleFromNVIDIA requested a review from a team as a code owner August 3, 2026 15:48
@KyleFromNVIDIA KyleFromNVIDIA added the bug Something isn't working label Aug 3, 2026
@KyleFromNVIDIA
KyleFromNVIDIA requested a review from a team as a code owner August 3, 2026 15:48
@KyleFromNVIDIA KyleFromNVIDIA added the non-breaking Non-breaking change label Aug 3, 2026
@github-actions github-actions Bot added the libcudf Affects libcudf (C++/CUDA) code. label Aug 3, 2026
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved CUDA memory-copy compatibility by removing an unsupported overlap-with-compute preference.
    • Expanded automated test coverage across additional GPU configurations, including GB300 and GH200 hardware.

Walkthrough

The workflows no longer exclude GB300 and GH200 GPUs from selected test matrices. The cuDF pandas matrix keeps its existing architecture, CUDA, and Python selection logic. CUDA batch copies now pass zero flags.

Changes

Test workflow GPU selection

Layer / File(s) Summary
Remove GPU matrix exclusions
.github/workflows/pr.yaml, .github/workflows/test.yaml
Selected test matrices no longer filter out gb300 and gh200. The cuDF pandas matrix retains its other selection rules.

CUDA batch-copy flags

Layer / File(s) Summary
Clear batch-copy flags
cpp/src/utilities/cuda_memcpy.cu
memcpy_batch_async passes zero flags to cudaMemcpyBatchAsync instead of cudaMemcpyFlagPreferOverlapWithCompute.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: bdice, abigalekim, msarahan

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title identifies the GB300 and GH200 compatibility fix, which is a stated objective of the changes.
Description check ✅ Passed The description explains the CUDA memory-copy issue and the required fix, which relates directly to the changed CUDA code and test coverage.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
cpp/src/utilities/cuda_memcpy.cu (1)

94-94: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Update the Doxygen contract for the copy attributes.

cpp/include/cudf/detail/utilities/cuda_memcpy.hpp still documents cudaMemcpyFlagPreferOverlapWithCompute, but the wrapper passes flags = 0. Remove the overlap flag from the contract and document the default copy flags.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@cpp/src/utilities/cuda_memcpy.cu` at line 94, Update the Doxygen contract for
the copy attributes associated with the cudaMemcpy wrapper to remove the
cudaMemcpyFlagPreferOverlapWithCompute claim and document that the wrapper uses
the default copy flags with flags set to 0. Keep the implementation in the
cudaMemcpy attributes initializer unchanged.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@cpp/src/utilities/cuda_memcpy.cu`:
- Line 94: Update the Doxygen contract for the copy attributes associated with
the cudaMemcpy wrapper to remove the cudaMemcpyFlagPreferOverlapWithCompute
claim and document that the wrapper uses the default copy flags with flags set
to 0. Keep the implementation in the cudaMemcpy attributes initializer
unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: cd27a0d6-a851-4869-aafc-7f8dc1865471

📥 Commits

Reviewing files that changed from the base of the PR and between 3b3cea4 and e411404.

📒 Files selected for processing (3)
  • .github/workflows/pr.yaml
  • .github/workflows/test.yaml
  • cpp/src/utilities/cuda_memcpy.cu
💤 Files with no reviewable changes (1)
  • .github/workflows/test.yaml

Comment thread cpp/src/utilities/cuda_memcpy.cu Outdated
@davidwendt
davidwendt marked this pull request as draft August 3, 2026 16:46
@copy-pr-bot

copy-pr-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@KyleFromNVIDIA

Copy link
Copy Markdown
Member Author

/ok to test 8431f9b

@github-actions github-actions Bot added the CMake CMake build issue label Aug 5, 2026
@davidwendt

Copy link
Copy Markdown
Contributor

/ok to test bf19e35

@KyleFromNVIDIA

Copy link
Copy Markdown
Member Author

/ok to test 0fea12e

@davidwendt

Copy link
Copy Markdown
Contributor

/ok to test dd91286

@davidwendt

Copy link
Copy Markdown
Contributor

/ok to test d907c1e

Comment thread cpp/tests/utilities/identify_stream_usage.cpp Outdated
@github-actions github-actions Bot added the pylibcudf Issues specific to the pylibcudf package label Aug 21, 2026
@Matt711

Matt711 commented Aug 21, 2026

Copy link
Copy Markdown
Member

/ok to test b6cbf65

@Matt711

Matt711 commented Aug 21, 2026

Copy link
Copy Markdown
Member

/ok to test 1f962a5

@davidwendt

Copy link
Copy Markdown
Contributor

/ok to test 9003f7a

@Matt711

Matt711 commented Aug 22, 2026

Copy link
Copy Markdown
Member

/ok to test 3223778

@Matt711

Matt711 commented Aug 24, 2026

Copy link
Copy Markdown
Member

/ok to test 6bd135e

Comment thread cpp/src/interop/from_arrow_device.cu
@davidwendt

Copy link
Copy Markdown
Contributor

/ok to test bf8adaf

@GregoryKimball GregoryKimball moved this to Burndown in libcudf Aug 24, 2026
@Matt711

Matt711 commented Aug 24, 2026

Copy link
Copy Markdown
Member

/ok to test 0637642

@Matt711

Matt711 commented Aug 24, 2026

Copy link
Copy Markdown
Member

I can repoduce the polars failure: https://github.com/NVIDIA/cudf/actions/runs/32748580160/job/97508667461?pr=23517. It fails CPU-only! I'm working on debugging it now. One option is punting (and filing an issue) and skipping the test to keep forward progress.

@Matt711

Matt711 commented Aug 24, 2026

Copy link
Copy Markdown
Member

The last failing python tests are in https://github.com/NVIDIA/cudf/actions/runs/32753601025/job/97527096857?pr=23517. The first two are hybrid scan tests. CC @mhaseeb123 (for awareness). I'm checking if I can reproduce. If so, I'll have an agent go down the rabbit hole.

Details
=================================== FAILURES ===================================
_ test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation[equal_to_not_equal] _
Traceback (most recent call last):
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 353, in from_call
    result: TResult | None = func()
                             ~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 245, in <lambda>
    lambda: runtest_hook(item=item, **kwds),
            ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
    item.runtest()
    ~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 1720, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/__w/cudf/cudf/python/pylibcudf/tests/io/test_experimental_hybrid_scan.py", line 885, in test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation
    assert prune(Operation(ASTOperator.NOT, inner)) == expected
           ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/__w/cudf/cudf/python/pylibcudf/tests/io/test_experimental_hybrid_scan.py", line 880, in prune
    return reader.filter_row_groups_with_dictionary_pages(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        dictionary_data, all_row_groups, simple_parquet_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "pylibcudf/io/experimental/hybrid_scan.pyx", line 436, in pylibcudf.io.experimental.hybrid_scan.HybridScanReader.filter_row_groups_with_dictionary_pages
    filtered = move(self.c_obj.get()[0].filter_row_groups_with_dictionary_pages(
    
RuntimeError: CUDF failure at: /tmp/conda-bld-output/bld/rattler-build_libcudf/work/cpp/src/io/parquet/experimental/hybrid_scan_preprocess.cu:77: Parquet header parsing failed with code(s) 0x1
_ test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation[not_equal_to_equal] _
Traceback (most recent call last):
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 353, in from_call
    result: TResult | None = func()
                             ~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 245, in <lambda>
    lambda: runtest_hook(item=item, **kwds),
            ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
    item.runtest()
    ~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 1720, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/__w/cudf/cudf/python/pylibcudf/tests/io/test_experimental_hybrid_scan.py", line 885, in test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation
    assert prune(Operation(ASTOperator.NOT, inner)) == expected
           ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/__w/cudf/cudf/python/pylibcudf/tests/io/test_experimental_hybrid_scan.py", line 880, in prune
    return reader.filter_row_groups_with_dictionary_pages(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        dictionary_data, all_row_groups, simple_parquet_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "pylibcudf/io/experimental/hybrid_scan.pyx", line 436, in pylibcudf.io.experimental.hybrid_scan.HybridScanReader.filter_row_groups_with_dictionary_pages
    filtered = move(self.c_obj.get()[0].filter_row_groups_with_dictionary_pages(
    
RuntimeError: CUDF failure at: /tmp/conda-bld-output/bld/rattler-build_libcudf/work/cpp/src/io/parquet/experimental/hybrid_scan_preprocess.cu:77: Parquet header parsing failed with code(s) 0x1
_____________________________ test_from_rmm_buffer _____________________________
Traceback (most recent call last):
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 353, in from_call
    result: TResult | None = func()
                             ~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 245, in <lambda>
    lambda: runtest_hook(item=item, **kwds),
            ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
    yield
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
    return result.get_result()
           ~~~~~~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_result.py", line 103, in get_result
    raise exc.with_traceback(tb)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
    res = yield
          ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 139, in _multicall
    teardown.throw(exception)
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
    return (yield)
            ^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
    item.runtest()
    ~~~~~~~~~~~~^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 1720, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/opt/conda/envs/test/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/opt/conda/envs/test/lib/python3.14/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/__w/cudf/cudf/python/pylibcudf/tests/test_column_from_device.py", line 134, in test_from_rmm_buffer
    assert_column_eq(result, expected)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/__w/cudf/cudf/python/pylibcudf/tests/common/utils.py", line 266, in assert_column_eq
    raise_array_not_equal(lhs, rhs)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/__w/cudf/cudf/python/pylibcudf/tests/common/utils.py", line 282, in raise_array_not_equal
    assert left == right
AssertionError: assert ['a', 'b', 'c'] == ['s', 't', 'r']
  
  At index 0 diff: 'a' != 's'
  
  Full diff:
    [
  -     's',
  ?      ^
  +     'a',
  ?      ^
  -     't',
  ?      ^
  +     'b',
  ?      ^
  -     'r',
  ?      ^
  +     'c',
  ?      ^
    ]
=========================== short test summary info ============================
FAILED tests/io/test_experimental_hybrid_scan.py::test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation[equal_to_not_equal] - RuntimeError: CUDF failure at: /tmp/conda-bld-output/bld/rattler-build_libcudf/work/cpp/src/io/parquet/experimental/hybrid_scan_preprocess.cu:77: Parquet header parsing failed with code(s) 0x1
FAILED tests/io/test_experimental_hybrid_scan.py::test_hybrid_scan_filter_row_groups_with_dictionary_pages_negation[not_equal_to_equal] - RuntimeError: CUDF failure at: /tmp/conda-bld-output/bld/rattler-build_libcudf/work/cpp/src/io/parquet/experimental/hybrid_scan_preprocess.cu:77: Parquet header parsing failed with code(s) 0x1
FAILED tests/test_column_from_device.py::test_from_rmm_buffer - AssertionError: assert ['a', 'b', 'c'] == ['s', 't', 'r']
  
  At index 0 diff: 'a' != 's'
  
  Full diff:
    [
  -     's',
  ?      ^
  +     'a',
  ?      ^
  -     't',
  ?      ^
  +     'b',
  ?      ^
  -     'r',
  ?      ^
  +     'c',
  ?      ^
    ]

@Matt711

Matt711 commented Aug 24, 2026

Copy link
Copy Markdown
Member

/ok to test b800d95

rapids-bot Bot pushed a commit that referenced this pull request Aug 24, 2026
…23783)

Discovered in #23517

Lets skip it for now until the bug is fixed in Polars.

Authors:
  - Matthew Murray (https://github.com/Matt711)

Approvers:
  - Bradley Dice (https://github.com/bdice)

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

Labels

bug Something isn't working CMake CMake build issue libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change pylibcudf Issues specific to the pylibcudf package Python Affects Python cuDF API.

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

7 participants