Repository navigation
fix(test): route IC6 cuDF assertion through Arrow-safe helper - #1437
Merged
Merged
Conversation
…#1415, #880) `test_issue_1396_issue_1415_tag_cooccurrence_join_aggregation_counts_on_cudf` called `result._nodes.to_pandas().to_dict(orient="records")` directly, which segfaults inside `numba_cuda`'s CUDA driver context init on the RAPIDS 25.02-cuda12.8 aarch64 image (crash chain: `cudf.core.column.numerical.to_pandas` → `values_host` → `data_array_view` → `as_cuda_array` → `_require_cuda_context` → `safe_cuda_api_call`). The file already defines `_to_pandas_df` (line 851) precisely for this case — its comment explicitly cites the RAPIDS 25.02 segfault path and prefers Arrow conversion. The IC6 test now routes through that helper. Validated on DGX RAPIDS 25.02 (`nvcr.io/nvidia/rapidsai/base:25.02-cuda12.8-py3.12`) and 26.02 (`nvcr.io/nvidia/rapidsai/base:26.02-cuda13-py3.13`) via `docker/test-rapids-official-local.sh`: both pandas and cuDF variants PASS on both images after the fix. Other direct `.to_pandas().to_dict(...)` callsites in this file are left alone for now — a sweep is a separate concern. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This was referenced May 15, 2026
This was referenced May 15, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes a
numba_cudasegfault duringtest_issue_1396_issue_1415_tag_cooccurrence_join_aggregation_counts_on_cudfon the RAPIDS 25.02-cuda12.8 aarch64 image. The test bypassed the existing_to_pandas_dfhelper (graphistry/tests/compute/gfql/cypher/test_lowering.py:851) whose own comment cites this exact failure mode ("RAPIDS 25.02 can segfault on some direct to_pandas() paths; prefer Arrow."). Switched to the helper, which routes cuDF DataFrames throughto_arrow().to_pandas()and avoidsnumba_cuda's CUDA driver context init path.Surfaced while validating graphistry/pyg-bench#12 (benchmark-side closeout of #1415) — the segfault is preexisting infrastructure brittleness on 25.02 + ARM, not a regression from #1427 or #1396/#1426, but it blocks the IC6 RAPIDS 25.02 receipt.
Test plan
docker/test-rapids-official-local.shwithRAPIDS_IMAGE=nvcr.io/nvidia/rapidsai/base:25.02-cuda12.8-py3.12— bothtest_issue_1396_issue_1415_tag_cooccurrence_join_aggregation_countsand_on_cudfPASS (previously the_on_cudfvariant segfaulted innumba_cudaduringcudf.to_pandas()).docker/test-rapids-official-local.shwithRAPIDS_IMAGE=nvcr.io/nvidia/rapidsai/base:26.02-cuda13-py3.13 CUDA_VARIANT=cuda13— both variants PASS.test_graph_constructor_cudf_supporton RAPIDS 25.02-cuda12.8) that the broader image isn't broken — only the direct.to_pandas()path triggers the segfault.Out of scope
.to_pandas().to_dict()callsites intest_lowering.py. They don't currently segfault but are latently vulnerable to the same numba_cuda path. A sweep to use_to_pandas_dfeverywhere is a follow-up.scripts/run_dgx_spark_suite.pydefaulting to the broken 25.02-cuda12.8 image. Addressed in a separate pyg-bench PR.🤖 Generated with Claude Code