fix(deps): pin mio after lockfile drift#8080
Conversation
Signed-off-by: PeaBrane <yanrpei@gmail.com>
WalkthroughFour network-related dependency crates ( Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@lib/bindings/python/Cargo.toml`:
- Around line 40-43: The direct pins for hyper and hyper-util are fine but
transitive dependencies still pull newer mio and socket2, so add explicit
overrides in Cargo.toml to force a single version for the transitive crates:
create a [patch.crates-io] section and pin mio = "=1.1.1" and socket2 = "=0.5.8"
(matching your rollback targets) so all crates resolve to those versions, then
run cargo update --package mio --precise 1.1.1 and cargo update --package
socket2 --precise 0.5.8 (or regenerate the lockfile) to ensure the lockfile
reflects the forced versions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 247232e0-f7d5-49e6-a3ee-b13c78dc0845
⛔ Files ignored due to path filters (1)
lib/bindings/python/Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
lib/bindings/python/Cargo.toml
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
|
Thanks for the fix! I just tested this on our repro setup and it fully resolves the hang. Setup: Qwen3.5-397B-A17B-FP8, aggregated DEP4 (TP4 EP4 DP4), 1 GB200 node (4 GPUs), Results
|
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Signed-off-by: PeaBrane <yanrpei@gmail.com>
Preserve the existing
main-branch Axum / hyper compatibility pins and add onlymio = 1.1.1on top.Static review of the passing-to-hanging lockfile boundary showed the meaningful drift was
mio 1.1.1 -> 1.2.0andhyper 1.8.1 -> 1.9.0, but onlymiochanged listener behavior in a way that matches the failure. Inmio 1.2.0, LinuxTcpListener::bindmoved from backlog-1/ kernel-max behavior to a hardcoded backlog128. Tokio'sTcpListener::binddelegates to that path, and Dynamo uses Tokio listener binds for both the frontend HTTP listener and the internal TCP callback servers.At
4096concurrency, that backlog change is a plausible explanation for the accept-queue pressure,Connection reset by peerpanics, and stranded tail requests seen after the lockfile refresh. This PR keeps the existinghyper/hyper-utilpins frommain, pins onlymio = 1.1.1, and keeps all workspace lockfiles in sync socargo metadata --lockedstays green.