Conversation
Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. WalkthroughThe pull request updates ChangesCUDA dependency update
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to The dependency pins and lockfile are aligned at cudarc 0.19.9, with reported validation checks passing, so the change is mergeable. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description summarizes the dependency updates and lists validation commands, but it does not use the required Overview, Details, or Where should the reviewer start sections. It also omits the required Related Issues section and confirmation that no related issue exists. Resolution Add the required Overview, Details, Where should the reviewer start, and Related Issues sections. In Related Issues, either link the applicable issue or check the confirmation that this PR has no related issue. Preserve the existing change summary and validation details in the appropriate sections.
Comment |
Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
Signed-off-by: William Arnold <7565007+Aphoh@users.noreply.github.com>
dmitry-tokarev-nv
left a comment
There was a problem hiding this comment.
Review of a dependency bump, one round
Approved. All three lock files are correct and in sync, and neither version range touches an interface this repository uses. Two P3 notes, neither blocking.
[P3] The Validation list does not prove the lock files are in sync. cargo metadata --locked --no-deps skips dependency resolution, so --locked has nothing left to compare. The form CI runs, without --no-deps, does catch a stale lock. Please drop --no-deps from that claim.
Measured on x86_64 Linux: the two command forms disagree under the same mutation
Toolchain 1.96.1. I reverted only the cudarc version line inside the root Cargo.lock to 0.19.8, and left Cargo.toml at =0.19.9.
| tree | sha256 of Cargo.lock |
--no-deps form |
CI form |
|---|---|---|---|
| head, unchanged | 0f7b28f0... |
exit 0 | exit 0 |
| mutated, 1 line | 1b8a3aa7... |
exit 0 | exit 101 |
| restored | 0f7b28f0... |
exit 0 | exit 0 |
The mutated checksum differs from the baseline, so the write landed. The restored checksum matches it, so the restore landed. lib/bindings/kvbm/Cargo.lock was the control. Its checksum never moved and its own check stayed green through the mutation.
The CI form failed with this, with the worktree path replaced:
error: cannot update the lock file <worktree>/Cargo.lock because --locked was passed to prevent this
The CI step is cargo metadata --locked --format-version 1 at .github/workflows/pre-merge.yml:508.
The second note is an inline comment on lib/memory/Cargo.toml, about the nixl-sys bump that the title does not mention.
What else I verified, and where verification stopped
Merge base ecb92bd8, head 624976db, four commits, and no head_ref_force_pushed event in the issue timeline. Main gained one commit since the merge base and it touches no file in this diff, so there is no interaction to check.
Lock files:
- The recorded checksums match the sha256 of the real crates.io tarballs.
cudarc-0.19.9.crateis804764d1...andnixl-sys-1.4.1.crateis2a38f879.... All three lock files carry the same pair. cargo metadata --locked --format-version 1exits 0 forCargo.toml,lib/bindings/python/Cargo.tomlandlib/bindings/kvbm/Cargo.toml.- The resolver picks
cudarc@0.19.9andnixl-sys@1.4.1. Nothing else moved. The diff changes exactly two package stanzas, two lines each, in each lock file. - Both upstream manifests differ from the old version only in the version line, so the unchanged
dependencies = [...]blocks are right. lib/runtime/examples/Cargo.lockis the fourth lock file in the tree. It holds neither crate, so leaving it alone is correct.
cudarc 0.19.8 to 0.19.9: the only change to shipped code is in src/driver/safe/core.rs. Three call sites now ask is_managing_stream_synchronization() before they record or wait on an event. Twelve other call sites already asked. The flag is is_in_multi_stream_mode() && is_event_tracking(), and both exist in 0.19.8 with the same defaults, so single stream code stops doing work it did not need. The rest of the diff is the cupti bindings. No .rs or .toml file here names cupti or calls that flag or its setters.
Build, run on x86_64 Linux with the pinned 1.96.1 toolchain:
cargo check --locked -p dynamo-memory -j 16finished in 4.93 seconds and compiledcudarc v0.19.9andnixl-sys v1.4.1.dynamo-memoryis the crate that takes both as hard dependencies.cargo test --locked -p dynamo-memory --no-run -j 16built both test binaries, and-- --listreports 2 tests.
Verification stopped here. I ran a crate scoped subset, not the whole rust-tests (.) lane, to keep a shared disk free. The workspace lane is green at 624976db. I did not link against a real libnixl build, because nixl-sys 1.3.2 and 1.4.1 have byte identical build.rs, wrapper.cpp and stubs.cpp, which answers the question a link test would have answered.
| anyhow = { workspace = true } | ||
| cudarc = { workspace = true } | ||
| nixl-sys = { version = "=1.3.2" } | ||
| nixl-sys = { version = "=1.4.1" } |
There was a problem hiding this comment.
[P3] The nixl-sys bump from 1.3.2 to 1.4.1 is not named in the title or the Summary. lib/memory/Cargo.toml:30 and lib/llm/Cargo.toml:155. The bump itself is safe, but a reader of the title will not see it. Please name it in both.
Measured: nixl-sys 1.3.2 and 1.4.1 differ only in tests and version metadata
diff -r over the two crates.io tarballs:
| path | changed |
|---|---|
src/ |
no change |
wrapper.h, wrapper.cpp, stubs.cpp |
no change |
build.rs |
no change |
Cargo.toml |
version line only |
tests/tests.rs, tests/env_guard/ |
changed, test only |
The C API surface that this repository links against does not move. That is why the NIXL C++ SDK refs can stay where they are:
| place | before | after |
|---|---|---|
lib/llm/Cargo.toml:155 |
=1.3.2 |
=1.4.1 |
lib/memory/Cargo.toml:30 |
=1.3.2 |
=1.4.1 |
container/context.yaml:28 frontend |
v1.3.2 |
v1.3.2 |
container/context.yaml:55 dynamo |
v1.3.2 |
v1.3.2 |
container/context.yaml:108 vllm |
v1.3.2 |
v1.3.2 |
container/context.yaml:146 sglang xpu |
v1.1.0 |
v1.1.0 |
container/context.yaml:151 sglang |
v1.4.0 |
v1.4.0 |
container/context.yaml:166 trtllm |
v1.3.1 |
v1.3.1 |
Two reasons the disclosure matters here. The only approval on this pull request sits at ab70fae, which is before the two NIXL commits. The CodeRabbit walkthrough also describes the change as cudarc in two manifests, because !**/*.lock hides the lock files and the two NIXL manifests arrived later.
There was a problem hiding this comment.
Previously reported defects still present:
- Original discussion: The PR still changes the direct
nixl-syspins from 1.3.2 to 1.4.1 inlib/memory/Cargo.tomlandlib/llm/Cargo.toml, but the title and summary describe only the cudarc update, as originally reported.
Summary
Validation
cargo metadata --locked --no-deps --format-version 1cargo metadata --locked --no-deps --format-version 1 --manifest-path lib/bindings/python/Cargo.tomlcargo metadata --locked --no-deps --format-version 1 --manifest-path lib/bindings/kvbm/Cargo.tomlcargo check --locked -p dynamo-memorygit diff --checkSummary by CodeRabbit
cudarcdependency to version 0.19.9.