Skip to content

fix: preserve igraph collision attributes across round trips - #2207

Open
lmeyerov wants to merge 4 commits into
masterfrom
worker/fix-igraph-source-collision
Open

lmeyerov wants to merge 4 commits into
masterfrom
worker/fix-igraph-source-collision

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Restore igraph source/target collision attributes when endpoint bindings use custom names.
  • Keep default-binding collision behavior and retain attributes under unique fallback names.
  • Reserve temporary and final-binding names through one allocator so chained compute_igraph calls remain schema-stable and avoid duplicate-column crashes.

Boundary Coverage

  • Positive controls: source/target collision attributes, occupied final-binding fallbacks, repeated round trips, large nullable values, direct and GFQL/wire invocation, repeated chain enrichment, and Polars bridge retention.
  • Exact mixed final-binding siblings run in the CPU/igraph suite: source attribute collision with destination __attr_source_2__, and target attribute collision with source __attr_target_2__.
  • Negative/control evidence reuses focused immutability and repeated-chain cases; no unrelated broad campaign.

Evidence

  • Reproduced first-call schema leakage and second-call duplicate-column failure at master d220c9cdc8….
  • Exact repaired head: 76786f4eb5c356ff7bf1adb82a8a194bfb7e79d6.
  • Focused igraph suite: 48 passed on host and 48 passed, 5 subtests passed in the 26.02 GPU image.
  • Polars bridge remains green: 20 passed, 4 skipped. Ruff is clean.
  • Full-tree cuDF bridge proof on dgx-spark (graphistry/test-rapids-official:26.02-gfql, cuDF 26.02.01): validates native-cuDF bridge stability with s/d bindings and generated-looking attribute names, plus chained CPU igraph enrichment, from an exact git archive; imports resolve to /work/graphistry/__init__.py. Receipt: worker/research/round-002/S4-2204-cudf-mixed-binding-76786f4e.txt.
  • Whole-tree archive SHA-256: 1f581652750db837d8db99e9df70c927aab05d721494eb33ec4a186695fb6a17.
  • Final evidence: worker/research/round-002/repair-final-evidence-2026-10-20.md.
  • igraph is CPU-only; this validates the cuDF engine bridge, not GPU igraph execution.

Closes #2204

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

compute_igraph: chaining two calls crashes when edges have a 'source' column ('DataFrame' object has no attribute 'dtype') — regression in 0.61.0

1 participant