fix: support non-RDMA local builds#307
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
This PR makes RDMA support optional/feature-gated across the Rust crates and Python extension, and improves how packaged Python-launched binaries find the correct runtime environment.
Changes:
- Split Python RDMA bindings into a dedicated module and gate them behind the
rdmaCargo feature. - Add
binary_env()and pass it to server/metaserver subprocess launches to ensure correct Python/lib loading. - Feature-gate RDMA-related codepaths in
pegaflow-coreand update crate feature defaults (cuda-12,rdma).
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| python/src/pd_rdma.rs | New feature-gated Python RDMA engine bindings extracted from lib.rs. |
| python/src/lib.rs | Removes inline RDMA bindings and conditionally registers RDMA classes. |
| python/pegaflow/_server.py | Runs server binary with an augmented environment via binary_env(). |
| python/pegaflow/_metaserver.py | Runs metaserver binary with an augmented environment via binary_env(). |
| python/pegaflow/_bin_utils.py | Adds binary_env() to set LD_LIBRARY_PATH, PYTHONPATH, and PYTHONHOME. |
| python/Cargo.toml | Introduces rdma feature and makes pegaflow-transfer optional; updates defaults. |
| pegaflow-transfer/build.rs | Changes build script behavior to always generate/link libibverbs bindings. |
| pegaflow-transfer/Cargo.toml | Normalizes CUDA features (cuda-12 default). |
| pegaflow-server/Cargo.toml | Updates defaults to include cuda-12 and rdma. |
| pegaflow-core/src/storage/prefetch.rs | Wraps RDMA fetch behind a RdmaFetch adapter for cfg(feature="rdma"). |
| pegaflow-core/src/storage/mod.rs | Feature-gates RDMA transport creation/export and adds a non-RDMA config error. |
| pegaflow-core/src/metrics.rs | Feature-gates RDMA gauges and related types. |
| pegaflow-core/src/lib.rs | Feature-gates RDMA handshake/transport checks and updates tests accordingly. |
| pegaflow-core/src/backing/mod.rs | Feature-gates RDMA modules and re-exports. |
| pegaflow-core/Cargo.toml | Makes pegaflow-transfer optional and adds an explicit rdma feature. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
05e32a9 to
20888d2
Compare
|
Updated after Copilot review:
I intentionally left |
20888d2 to
6c0c0cb
Compare
Summary
pd_rdma.rsand pass Python loader env to bundled binariesTests
cargo fmt --checkcargo check -p pegaflow-py --no-default-features --features cuda-13 --lib --binscargo test -p pegaflow-core --no-default-features --features cuda-13 --libNot tested