Skip to content

fix: Upgrade futures-util to 0.3.32#7346

Merged
grahamking merged 1 commit into
mainfrom
gk-futures-util-ugprade
Mar 13, 2026
Merged

fix: Upgrade futures-util to 0.3.32#7346
grahamking merged 1 commit into
mainfrom
gk-futures-util-ugprade

Conversation

@grahamking

@grahamking grahamking commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

We are already using that since #6305 so no Cargo.lock changes, but we're using it as a side effect of a different package so it's not pinned. This PR pins it.

Closes: #7328

We are already using that since #6305 so no Cargo.lock changes,
but we're using it as a side effect of a different package so
it's not pinned. This PR pins it.

Closes: #7328

Signed-off-by: Graham King <[email protected]>
@grahamking grahamking requested a review from a team as a code owner March 13, 2026 18:20
@github-actions github-actions Bot added the fix label Mar 13, 2026
@grahamking grahamking enabled auto-merge (squash) March 13, 2026 18:21
@coderabbitai

coderabbitai Bot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d2d424d5-be4c-4257-aa77-6bd76764c817

📥 Commits

Reviewing files that changed from the base of the PR and between 23c42d8 and 8e23162.

📒 Files selected for processing (3)
  • Cargo.toml
  • lib/bench/Cargo.toml
  • lib/llm/Cargo.toml

Walkthrough

This pull request upgrades the futures-util dependency to version 0.3.32 in the workspace and consolidates dependency management across multiple crates (lib/bench and lib/llm) to use workspace-managed resolution instead of pinned versions.

Changes

Cohort / File(s) Summary
Workspace Dependency Management
Cargo.toml
Adds futures-util 0.3.32 to workspace dependencies, centralizing version control for downstream crates.
Crate Dependency Updates
lib/bench/Cargo.toml, lib/llm/Cargo.toml
Updates futures-util dependency declarations from pinned versions (0.3 and 0.3.31) to use workspace-managed resolution via { workspace = true }.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A bunny's tale of streams made right,
No more panics in the night,
Unfold's fixed in point-three-two,
Workspace harmony through and through!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description is incomplete relative to the template; it lacks Overview, Details, and Where to Review sections that are specified in the repository template. Add Overview, Details sections explaining why futures-util needs pinning, and identify which files reviewers should focus on (Cargo.toml files updated).
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: upgrading futures-util to version 0.3.32 across workspace dependencies.
Linked Issues check ✅ Passed The PR directly addresses issue #7328 by pinning futures-util to 0.3.32, which resolves the Unfold stream polling bug that caused frontend panics and worker discovery failures.
Out of Scope Changes check ✅ Passed All changes are scoped to pinning futures-util dependency versions in Cargo.toml files; no unrelated code modifications are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

You can disable the changed files summary in the walkthrough.

Disable the reviews.changed_files_summary setting to disable the changed files summary in the walkthrough.

@grahamking grahamking merged commit e6cb684 into main Mar 13, 2026
254 of 260 checks passed
@grahamking grahamking deleted the gk-futures-util-ugprade branch March 13, 2026 19:11
ShounakRay pushed a commit to ShounakRay/fuzzy-dynamo that referenced this pull request Mar 20, 2026
yao531441 pushed a commit to yao531441/dynamo that referenced this pull request May 13, 2026
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Jun 4, 2026
The inference-perf validator intermittently times out on healthy clusters
(~50% of runs) waiting for the inference endpoint to serve, even though the
DynamoGraphDeployment reports successful and all workers are Ready. Root cause
is a known upstream dynamo bug: dynamo-frontend 0.9.0 hits a discovery-stream
panic ("Unfold must not be polled after it returned Poll::Ready(None)" in
futures-util 0.3.31), which leaves the v1/instances KV bucket unpopulated so
the HTTP router never registers worker backends (ai-dynamo/dynamo#7328).

The upstream fix (futures-util -> 0.3.32, ai-dynamo/dynamo#7346) first shipped
in dynamo v1.0.0 and was never backported to the 0.9.x line. AICR already pins
the dynamo-platform operator chart at 1.0.2 (recipes/registry.yaml), but the
workload runtime image tags stayed at 0.9.0 -- so a 1.0.2 operator scheduled
0.9.0 pods carrying the panic.

Align the workload runtime images with the operator by bumping every
dynamo-frontend / vllm-runtime pin from 0.9.0 to 1.0.2:
- validators/performance/testdata/inference/dynamo-deployment.yaml
- validators/performance/model_cache.go (cache-warmer image)
- tests/manifests/dynamo-vllm-smoke-test.yaml (+ stale version comment)
- demos/workloads/inference/vllm-agg.yaml
- pkg/evidence/cncf/scripts/manifests/dynamo-vllm-agg.yaml

Also refresh stale 0.9.0 chart-version comments in
tests/chainsaw/ai-conformance/cluster/assert-dynamo.yaml (comment-only; the
file asserts only that the operator/grove Deployments are Available).

The DGD CRD apiVersion (nvidia.com/v1alpha1) is unchanged -- the 1.0.2 operator
already serves it, which is what the validator has been running against.

Verified on b40 (RTX PRO 6000) at 2048 concurrency: endpoint served with zero
Unfold panics / zero "bucket missing" events (vs 24 / 97 on 0.9.0), throughput
73,993 tok/s, TTFT p99 537 ms, phase passed.

Fixes NVIDIA#1192
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Jun 4, 2026
The inference-perf validator intermittently times out on healthy clusters
(~50% of runs) waiting for the inference endpoint to serve, even though the
DynamoGraphDeployment reports successful and all workers are Ready. Root cause
is a known upstream dynamo bug: dynamo-frontend 0.9.0 hits a discovery-stream
panic ("Unfold must not be polled after it returned Poll::Ready(None)" in
futures-util 0.3.31), which leaves the v1/instances KV bucket unpopulated so
the HTTP router never registers worker backends (ai-dynamo/dynamo#7328).

The upstream fix (futures-util -> 0.3.32, ai-dynamo/dynamo#7346) first shipped
in dynamo v1.0.0 and was never backported to the 0.9.x line. AICR already pins
the dynamo-platform operator chart at 1.0.2 (recipes/registry.yaml), but the
workload runtime image tags stayed at 0.9.0 -- so a 1.0.2 operator scheduled
0.9.0 pods carrying the panic.

Align the workload runtime images with the operator by bumping every
dynamo-frontend / vllm-runtime pin from 0.9.0 to 1.0.2:
- validators/performance/testdata/inference/dynamo-deployment.yaml
- validators/performance/model_cache.go (cache-warmer image)
- tests/manifests/dynamo-vllm-smoke-test.yaml (+ stale version comment)
- demos/workloads/inference/vllm-agg.yaml
- pkg/evidence/cncf/scripts/manifests/dynamo-vllm-agg.yaml

Also refresh stale 0.9.0 chart-version comments in
tests/chainsaw/ai-conformance/cluster/assert-dynamo.yaml (comment-only; the
file asserts only that the operator/grove Deployments are Available).

The DGD CRD apiVersion (nvidia.com/v1alpha1) is unchanged -- the 1.0.2 operator
already serves it, which is what the validator has been running against.

Verified on b40 (RTX PRO 6000) at 2048 concurrency: endpoint served with zero
Unfold panics / zero "bucket missing" events (vs 24 / 97 on 0.9.0), throughput
73,993 tok/s, TTFT p99 537 ms, phase passed.

Fixes NVIDIA#1192
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Frontend panics with Unfold stream error, preventing worker discovery and query routing

2 participants