Polars1.21.0 raises ComputeError: shapes don't match ... in is_in comparison during endpoint-resolvability filtering. This affects seeded typed-hop and OPTIONAL traversal queries on the Polars CPU engine installed in the RAPIDS25 test image.
Confirmed on both unmodified master 77bcbd337ad87c3d139e1f6f61fd041fd1563720 and combined PR2073 follow-ups 80271526f21e80e395b96c4fdbcaac6957b79c8c: the exact same33 test cases fail with the same error class. This is baseline compatibility debt, not a regression introduced by #2077/#2078/#2079 or #2080.
Reproduction environment: DGX Spark, graphistry/test-rapids-official:25.02-gfql, Polars1.21.0, cuDF25.2.2, pandas2.2.3, Python3.12. Commands were run sequentially under shared GPU locks and verified source manifests.
TEST_CUDF=1 TEST_POLARS_GPU=0 python -m pytest -q \
graphistry/tests/compute/gfql/test_seeded_node_lookup_fastpath.py \
graphistry/tests/compute/gfql/test_optional_match_semantics.py \
-k polars --maxfail=0 --tb=short
Representative failing test: test_optional_varlen_arm_bound_endpoints_projects_bound_alias[polars]. Additional cases include indexed/scan seeded typed-hop property projections and categorical node columns. The master run reports33 failed,255 passed,261 deselected. Expanded candidate suite reports33 failed,929 passed,195 skipped. The same expanded candidate suite passes962 tests in RAPIDS26 and1045 in the Polars-GPU image; there are no cuDF test failures in the25 lane.
Root site: graphistry/compute/gfql/lazy/engine/polars/hop_eager.py, _keep_edges_with_both_endpoints_resolvable: universe = resolvable_ids.implode() followed by endpoint is_in(universe). Polars1.21 interprets this RHS incompatibly and reports expected lengths0/8/113/226 versus1. Blame traces the imploded-universe construction to 86013f47f0 (2026-08-15), with later endpoint casting in d0e23d881a (2026-08-19). These dates establish provenance of the current construction; they do not establish the first release affected.
Priority: P2 compatibility defect. Current Polars/RAPIDS26 paths work; older Polars traversal correctness coverage is affected. Do not silently skip these cases or substitute CPU execution for explicit GPU requests. A fix should exercise empty and nonempty universes, null endpoints, both directions, indexed/scan paths, categorical IDs and mixed matching/nonmatching endpoints on both supported Polars versions.
Related: #2074 (discovery and baseline separation), #1890 (GPU CI coverage), #1938 (existing is_in warning tracking), #2026 (endpoint filtering performance). This issue tracks the concrete old-version execution failure, rather than those broader coverage/performance tasks.
Evidence retained locally under plans/gfql-2073-followups/logs/: device-master2080/, device-baseline2080-v2/, master2080-baseline-failure-parity.json; immutable image metadata, full source/probe SHA256 manifests, JUnit case identities and complete stacks accompany the runs. Deferred from the existing PR2073 fix set because exact baseline comparison proves the independent pre-existing defect.
Current verification checkpoint
Refreshed exact master92ad8c0dbe0af7acc56923f42153594cf5ab30fc control reproduces the same33failure IDs/error types as the follow-up candidate. Final combinedffa52d8a expanded matrix:cuDF25image1053passed/215skipped/33baseline failures;cuDF26image1086passed/215skipped;PolarsGPU26image1301passed/0skipped. This supplements the historical77/802 evidence above; it does not establish first affected release. P2deferral remains unchanged; current parity artifact is logs/master2081-final/gate-and-baseline-audit.json under the local2074plan.
Polars1.21.0 raises
ComputeError: shapes don't match ... in is_in comparisonduring endpoint-resolvability filtering. This affects seeded typed-hop and OPTIONAL traversal queries on the Polars CPU engine installed in the RAPIDS25 test image.Confirmed on both unmodified master
77bcbd337ad87c3d139e1f6f61fd041fd1563720and combined PR2073 follow-ups80271526f21e80e395b96c4fdbcaac6957b79c8c: the exact same33 test cases fail with the same error class. This is baseline compatibility debt, not a regression introduced by #2077/#2078/#2079 or #2080.Reproduction environment: DGX Spark,
graphistry/test-rapids-official:25.02-gfql, Polars1.21.0, cuDF25.2.2, pandas2.2.3, Python3.12. Commands were run sequentially under shared GPU locks and verified source manifests.Representative failing test:
test_optional_varlen_arm_bound_endpoints_projects_bound_alias[polars]. Additional cases include indexed/scan seeded typed-hop property projections and categorical node columns. The master run reports33 failed,255 passed,261 deselected. Expanded candidate suite reports33 failed,929 passed,195 skipped. The same expanded candidate suite passes962 tests in RAPIDS26 and1045 in the Polars-GPU image; there are no cuDF test failures in the25 lane.Root site:
graphistry/compute/gfql/lazy/engine/polars/hop_eager.py,_keep_edges_with_both_endpoints_resolvable:universe = resolvable_ids.implode()followed by endpointis_in(universe). Polars1.21 interprets this RHS incompatibly and reports expected lengths0/8/113/226 versus1. Blame traces the imploded-universe construction to86013f47f0(2026-08-15), with later endpoint casting ind0e23d881a(2026-08-19). These dates establish provenance of the current construction; they do not establish the first release affected.Priority: P2 compatibility defect. Current Polars/RAPIDS26 paths work; older Polars traversal correctness coverage is affected. Do not silently skip these cases or substitute CPU execution for explicit GPU requests. A fix should exercise empty and nonempty universes, null endpoints, both directions, indexed/scan paths, categorical IDs and mixed matching/nonmatching endpoints on both supported Polars versions.
Related: #2074 (discovery and baseline separation), #1890 (GPU CI coverage), #1938 (existing is_in warning tracking), #2026 (endpoint filtering performance). This issue tracks the concrete old-version execution failure, rather than those broader coverage/performance tasks.
Evidence retained locally under
plans/gfql-2073-followups/logs/:device-master2080/,device-baseline2080-v2/,master2080-baseline-failure-parity.json; immutable image metadata, full source/probe SHA256 manifests, JUnit case identities and complete stacks accompany the runs. Deferred from the existing PR2073 fix set because exact baseline comparison proves the independent pre-existing defect.Current verification checkpoint
Refreshed exact master92ad8c0dbe0af7acc56923f42153594cf5ab30fc control reproduces the same33failure IDs/error types as the follow-up candidate. Final combinedffa52d8a expanded matrix:cuDF25image1053passed/215skipped/33baseline failures;cuDF26image1086passed/215skipped;PolarsGPU26image1301passed/0skipped. This supplements the historical77/802 evidence above; it does not establish first affected release. P2deferral remains unchanged; current parity artifact is logs/master2081-final/gate-and-baseline-audit.json under the local2074plan.