Skip to content

fix(cugraph): isolate graph-return endpoint renames - #2214

Merged
lmeyerov merged 13 commits into
masterfrom
worker/fix-cugraph-src-dst-collision
Oct 22, 2026
Merged

lmeyerov merged 13 commits into
masterfrom
worker/fix-cugraph-src-dst-collision

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Avoid duplicate cuDF columns when graph-return cuGraph algorithms temporarily use src/dst bindings.
  • Keep the caller’s source/destination bindings by correcting returned-graph endpoint metadata before import.
  • Preserve the original edge attributes on retained rows, including rows emitted by undirected cuGraph algorithms in reverse orientation.
  • Preserve algorithm-filtered topology rather than restoring the full pre-algorithm edge frame.
  • Reserve temporary row IDs across returned/original frames, including user-owned generated names.
  • Reject one-sided undirected antiparallel attributes with conflicting values; retain identical attributes and exact orientations when both directions are returned.
  • Remove redundant CI exclude overrides.

Fixes #2211

Evidence

  • Base: origin/master@a3b3498ebe0d2b4f98d5f5d720a67e3d27fb58fe (fix(gexf): preserve endpoint attributes on import #2213 merge)

  • Head: 05f841c9676a3b0ba8552dc63923ba14f1e20b74 / tree 0f74a5e8b263e94954f98c23b68d2641f364ad42

  • DGX red baseline: src, dst, and both reproduce ValueError: Duplicate column names are not allowed; clean, source, target, and generated-name controls pass.

  • F5 red: original user attr __cugraph_returned_edge_id__ reproduces KeyError at 30a493160c8d8c324627012740acddec7683ee49.

  • Topology red: triangle plus tail, k_core(k=2) retained 4 edges and warned about mismatched edge-table lengths before this fix.

  • Topology fix: out1 and out2 retain exactly the 3 triangle edges; retained labels survive, including reversed undirected orientations.

  • Pandas matrix: 14 passed, 4 skipped, 23 deselected; Ruff clean.

  • Directed scope: cuGraph 26.02 ego_graph(directed=True) retains both orientations with exact attrs; one-sided conflicting undirected output is rejected.

  • DGX final matrix: RAPIDS graphistry/test-rapids-official:26.02-gfql, cuGraph 26.02.00, cuDF 26.02.01; focused tests 19 passed, 23 deselected, 3 subtests passed at the exact head. Receipts: plans/mcp-next-2211-2212-1955/worker/receipts/step11-p0035-dgx-05f841c9.txt and plans/mcp-next-2211-2212-1955/worker/receipts/final-2214-hosted-gates-05f841c9.txt.

  • The full DGX class has three failures at unchanged 059e2ac53 and at this head: two 26.02 from_cugraph expectations and batched_ego_graphs availability. They are unchanged and outside the focused review scope.

  • Changed-line coverage now includes graphistry/plugins/cugraph.py; focused cuGraph coverage remains DGX-native.

  • Review response: duplicate (source, destination) pairs are explicitly rejected; retained output rows preserve one-to-one attribute identity; filtered topology is not restored.

  • Final exact-head gates: CI run 39704024422 SUCCESS, CodeQL run 39704024437 SUCCESS, and RTD build 35313393 SUCCESS. Receipt: plans/mcp-next-2211-2212-1955/worker/receipts/final-2214-hosted-gates-05f841c9.txt.

P0035 directed graph-return durability

  • Added TEST_CUGRAPH regression test_graph_return_directed_ego_preserves_antiparallel_attrs through public compute_cugraph("ego_graph", directed=True); expects both orientations with distinct attrs.
  • Master red control on DGX (cuDF 26.02.01/cuGraph 26.02.00): returned 4 edges rather than the expected 2; amended focused suite: 19 passed, 23 deselected, 3 subtests passed.

@lmeyerov
lmeyerov force-pushed the worker/fix-cugraph-src-dst-collision branch from 6af8cc3 to 98aa401 Compare October 21, 2026 17:38
@lmeyerov
lmeyerov force-pushed the worker/fix-cugraph-src-dst-collision branch from 901515d to 4e6da0a Compare October 22, 2026 00:42
@lmeyerov
lmeyerov merged commit de83e50 into master Oct 22, 2026
73 checks passed
@lmeyerov
lmeyerov deleted the worker/fix-cugraph-src-dst-collision branch October 22, 2026 01:37
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.

cuGraph graph-return fails when user edge columns are src/dst

1 participant