Skip to content

[https://nvbugs/6312828][fix] Recover disaggregated requests after timeouts - #16402

Draft
chienchunhung wants to merge 9 commits into
NVIDIA:mainfrom
chienchunhung:codex/nvbug6312828-proxy-deadline
Draft

[https://nvbugs/6312828][fix] Recover disaggregated requests after timeouts#16402
chienchunhung wants to merge 9 commits into
NVIDIA:mainfrom
chienchunhung:codex/nvbug6312828-proxy-deadline

Conversation

@chienchunhung

@chienchunhung chienchunhung commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fixes NVBug 6312828, where high-concurrency disaggregated Qwen3-32B requests could become terminal at the HTTP layer while backend KV-transfer work remained stranded, preventing service recovery.

The change aligns serving, executor, and C++ transceiver lifecycle state. It does not enable in-flight C++ cancellation or tune admission policy.

Change Breakdown

The PR changes 30 existing files (+5,379/-422). Most of the diff is regression coverage, not production logic:

Scope Diff Purpose
Serving/HTTP production +785/-138 Propagate one deadline; define 504/SSE terminal behavior; bound retry, reservation, task, stream, and shutdown cleanup
PyExecutor production +428/-59 Terminalize queued cancellations; continue polling/reaping asynchronous transfers; coordinate rank-wide drain
C++ transceiver production +364/-65 Make default-off cancellation phase-safe; reject late/replayed handshakes; bound retained handshake state
Tests and CI configuration +3,802/-160 Add C++/Python lifecycle matrices, the 10K stress-and-recovery checks, QA accounting, and waiver updates

Production code totals +1,577/-262; tests and CI configuration account for about 68% of total churn. There are no generated, vendored, binary, or copied-fixture changes.

Fix Scope

  • Apply one request deadline across routing, CTX/GEN dispatch, retries, and response streaming.
  • Return HTTP 504 before headers; after SSE begins, emit an in-band timeout error followed by [DONE]. Expired requests and upstream 504 responses are not retried.
  • Make coordinator accounting, reservations, sibling tasks, upstream streams, shutdown, and request cleanup cancellation-safe and bounded. Queued requests reach a terminal state before executor bookkeeping is removed.
  • Keep an otherwise-idle CTX executor polling while any rank owns asynchronous KV-transfer work, and defer drain-required control operations until every rank releases ownership.
  • Make default-off C++ cancellation phase-safe: cancellation wins before peer-session publication; after the first peer arrives, the transfer drains naturally. GEN remains observe-only until C++ reports a rank-consistent terminal result.
  • Reject late or replayed handshakes with ready=false, and bound retained pre-handshake/finalized state.
  • Preserve the reported workload at 10,000 requests and concurrency 512, with a 180-second request deadline and 5-second/10-second heartbeat settings.

Scope boundaries:

  • C++ in-flight transfer cancellation remains disabled by default; permanently wedged active transport operations are not claimed resolved.
  • The Python V2 transceiver protocol is unchanged, and kv_transfer_admission_window_multiplier remains 1.
  • B200 DeepSeek (NVBug 6472256) and H100 Qwen3.5 (NVBug 6479324) are separate workloads and are not claimed resolved here.

Validation

Current head: d97d6c7cf53f72a68a4e42ed6fde6cff14a149a1

  • Full pre-merge CI passed on the current head: helper #62586 / pipeline #50728 / report. The fresh rerun reported 411 passed, 0 failed, and 193 skipped, while reusing 77 successful same-head stages.
  • The exact B200 and H100 Qwen3-32B stress leaves passed focused QA on earlier production revision fca8e33571 and are unwaived. These exact QA-only workloads were not rerun on final head d97d6c7; the current-head evidence is the full CI result above.
Test / workload Evidence Result and waiver status
B200 test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]
10,000 requests, concurrency 512
helper #60877 / QA #311 at fca8e33571 Passed; unwaived
H100 test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]
10,000 requests, concurrency 512
Test-only mirror PR #16641: helper #60878 / QA #312 / cluster #1767 at fca8e33571 Leaf passed; 10,000 terminal records and GSM8K recovery score 0.674 (>0.42); unwaived. QA was overall unstable because the separate Qwen3.5 leaf failed.
B200 test_disaggregated_stress_test[input8k-output1k-conc512-deepseek_r1_v2_fp4_stress]
35,000 requests (NVBug 6472256)
Not verified or claimed resolved here Remains waived
H100 test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_5_4b_fp8_stress]
3,000 requests (NVBug 6479324)
Executed alongside Qwen3-32B in QA #312; failed on the separate hybrid-cache dtype issue targeted by PR #16505 Excluded; remains waived

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59370 [ run ] triggered by Bot. Commit: fb8b982 Link to invocation

yufeiwu-nv added a commit to yufeiwu-nv/TensorRT-LLM that referenced this pull request Jul 15, 2026
…16402)

This update ensures that commented-out lines in the Groovy configuration are ignored during stage parsing, preventing disabled stage configurations from being processed.

Signed-off-by: yufeiwu-nv <230315618+yufeiwu-nv@users.noreply.github.com>
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59370 [ run ] completed with state FAILURE. Commit: fb8b982
LLM_FUNCTION_AUTO_V2C #262 completed with status: 'UNSTABLE'
QA verify test: disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] (NVBug 6312828, branch codex/nvbug6312828-proxy-deadline, fork chienchunhung, dry_run_close=true)

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@chienchunhung chienchunhung added the api-compatible Accepted LLM API contract change that is backwards-compatible label Jul 15, 2026
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59512 [ kill ] triggered by Bot. Commit: 0ad94a2 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59512 [ kill ] completed with state SUCCESS. Commit: 0ad94a2
Successfully killed previous jobs for commit 0ad94a2

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59514 [ run ] triggered by Bot. Commit: 0ad94a2 Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59545 [ run ] triggered by Bot. Commit: 6fa5884 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59545 [ run ] completed with state FAILURE. Commit: 6fa5884
LLM_FUNCTION_AUTO_V2C #270 completed with status: 'UNSTABLE'
QA verify test: disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] (NVBug 6312828, branch codex/nvbug6312828-proxy-deadline, fork chienchunhung, dry_run_close=true)

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59737 [ run ] triggered by Bot. Commit: 92bfff6 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59737 [ run ] completed with state FAILURE. Commit: 92bfff6
LLM_FUNCTION_AUTO_V2C #271 completed with status: 'UNSTABLE'
QA verify test: disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] (NVBug 6312828, branch codex/nvbug6312828-proxy-deadline, fork chienchunhung, dry_run_close=true)

Link to invocation

@chienchunhung
chienchunhung force-pushed the codex/nvbug6312828-proxy-deadline branch from 92bfff6 to f58de71 Compare July 17, 2026 02:48
@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Jul 17, 2026
@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Jul 17, 2026
@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Jul 17, 2026
@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Jul 17, 2026
@NVIDIA NVIDIA deleted a comment from tensorrt-cicd Jul 17, 2026
@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59856 [ run ] triggered by Bot. Commit: f58de71 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59856 [ run ] completed with state FAILURE. Commit: f58de71
LLM_FUNCTION_AUTO_V2C #272 completed with status: 'UNSTABLE'
QA verify test: disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] (NVBug 6312828, branch codex/nvbug6312828-proxy-deadline, fork chienchunhung, dry_run_close=true)

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --only-qa-verify test disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress]

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59886 [ run ] triggered by Bot. Commit: e877ea8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #59886 [ run ] completed with state FAILURE. Commit: e877ea8
LLM_FUNCTION_AUTO_V2C #273 completed with status: 'UNSTABLE'
QA verify test: disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] (NVBug 6312828, branch codex/nvbug6312828-proxy-deadline, fork chienchunhung, dry_run_close=true)

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61959 [ run ] triggered by Bot. Commit: cdd5594 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #61959 [ run ] completed with state FAILURE. Commit: cdd5594
/LLM/main/L0_MergeRequest_PR pipeline #50148 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
@chienchunhung
chienchunhung force-pushed the codex/nvbug6312828-proxy-deadline branch from cdd5594 to d97d6c7 Compare July 28, 2026 01:36
@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62054 [ run ] triggered by Bot. Commit: d97d6c7 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62054 [ run ] completed with state SUCCESS. Commit: d97d6c7
/LLM/main/L0_MergeRequest_PR pipeline #50237 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --stage-list "DGX_H100-PyTorch-4"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62234 [ run ] triggered by Bot. Commit: d97d6c7 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62234 [ run ] completed with state SUCCESS. Commit: d97d6c7
/LLM/main/L0_MergeRequest_PR pipeline #50403 (Partly Tested) completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

CI Report

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62279 [ run ] triggered by Bot. Commit: d97d6c7 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62279 [ run ] completed with state FAILURE. Commit: d97d6c7
/LLM/main/L0_MergeRequest_PR pipeline #50447 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62344 [ run ] triggered by Bot. Commit: d97d6c7 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62344 [ run ] completed with state FAILURE. Commit: d97d6c7
/LLM/main/L0_MergeRequest_PR pipeline #50511 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62586 [ run ] triggered by Bot. Commit: d97d6c7 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #62586 [ run ] completed with state SUCCESS. Commit: d97d6c7
/LLM/main/L0_MergeRequest_PR pipeline #50728 completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

CI Report

Link to invocation

@moraxu

moraxu commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

FYI, also merged #17427

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

Labels

api-compatible Accepted LLM API contract change that is backwards-compatible

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants