Skip to content

[https://nvbugs/6480621][test] Revert to 60-second KV transfer timeout for GB300 DeepSeek V4 Pro disaggregated perf-sanity - #17137

Open
chienchunhung wants to merge 1 commit into
NVIDIA:mainfrom
chienchunhung:codex/nvbug-6480621-timeout-60s-ci
Open

[https://nvbugs/6480621][test] Revert to 60-second KV transfer timeout for GB300 DeepSeek V4 Pro disaggregated perf-sanity#17137
chienchunhung wants to merge 1 commit into
NVIDIA:mainfrom
chienchunhung:codex/nvbug-6480621-timeout-60s-ci

Conversation

@chienchunhung

@chienchunhung chienchunhung commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

Depends on #17223. This PR's unique diff is one GB300 DeepSeek V4 Pro perf-sanity YAML:

  • explicitly enable cache_transceiver_precheck for this target;
  • set GEN and CTX kv_transfer_timeout_ms from 600000 ms to 60000 ms.

Stack and merge order

Validation

Exact command:

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

Exact test:

perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb300_deepseek-v4-pro-fp4_8k1k_con180_ctx3_dep4_gen1_dep32_eplb384_mtp3_ccb-NIXL]

The restacked YAML parses, the precheck is enabled, and both timeout values are 60000 ms. Fresh targeted CI: trigger comment → PR_Github #65363 → L0 #53128 at the exact current head, with test reuse disabled. Historical L0 #51530 passed all six precheck combinations and 180/180 requests, but predates the final parent revision.

This 3-CTX, concurrency-180 proxy does not replace the original 8-CTX, concurrency-1760 stress validation.

Related PRs

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63105 [ run ] triggered by Bot. Commit: 38ca970 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63106 [ run ] triggered by Bot. Commit: 38ca970 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63105 [ run ] completed with state ABORTED. Commit: 38ca970

Link to invocation

@chienchunhung chienchunhung changed the title [https://nvbugs/6480621][test] Validate 60-second KV transfer timeout [https://nvbugs/6480621][test] Revert to 60-second KV transfer timeout for GB300 DeepSeek V4 Pro disaggregated perf-sanity Jul 31, 2026
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63106 [ run ] completed with state SUCCESS. Commit: 38ca970
/LLM/main/L0_MergeRequest_PR pipeline #51197 (Partly Tested) completed with status: 'SUCCESS'

CI Report

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63144 [ run ] triggered by Bot. Commit: 38ca970 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63144 [ run ] completed with state FAILURE. Commit: 38ca970
/LLM/main/L0_MergeRequest_PR pipeline #51231 (Partly Tested) completed with status: 'ABORTED'

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

Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63150 [ run ] triggered by Bot. Commit: 38ca970 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63150 [ run ] completed with state FAILURE. Commit: 38ca970
/LLM/main/L0_MergeRequest_PR pipeline #51234 (Partly Tested) 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 --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63165 [ run ] triggered by Bot. Commit: 38ca970 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63165 [ run ] completed with state FAILURE. Commit: 38ca970
/LLM/main/L0_MergeRequest_PR pipeline #51249 (Partly Tested) 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 --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63555 [ run ] triggered by Bot. Commit: 3e6c120 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63555 [ run ] completed with state SUCCESS. Commit: 3e6c120
/LLM/main/L0_MergeRequest_PR pipeline #51521 (Partly Tested) 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
chienchunhung force-pushed the codex/nvbug-6480621-timeout-60s-ci branch from 3e6c120 to b7bd98a Compare August 3, 2026 21:40
@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63564 [ run ] triggered by Bot. Commit: b7bd98a Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #63564 [ run ] completed with state SUCCESS. Commit: b7bd98a
/LLM/main/L0_MergeRequest_PR pipeline #51530 (Partly Tested) completed with status: 'SUCCESS'

CI Report

Link to invocation

@chienchunhung
chienchunhung marked this pull request as ready for review August 3, 2026 23:41
@chienchunhung
chienchunhung requested review from a team as code owners August 3, 2026 23:41
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@chienchunhung
chienchunhung force-pushed the codex/nvbug-6480621-timeout-60s-ci branch from 538239c to d0a7c6e Compare August 10, 2026 20:30

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@chienchunhung chienchunhung added the api-compatible Accepted LLM API contract change that is backwards-compatible label Aug 10, 2026 — with ChatGPT Codex Connector
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65119 [ run ] triggered by Bot. Commit: d0a7c6e Link to invocation

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
tests/unittest/scripts/test_perf_submit.py (1)

302-306: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

The malformed-payload branch is still uncovered.

Line 303 leaves the outer double quote unterminated. shlex.split fails on the whole line, so the error is cannot parse exported pytestCommand and the payload parser never runs. The new test at Line 332 has the same shape.

To reach the payload branch, close the outer quote and leave the extracted payload unbalanced.

This repeats the finding from the previous review round. That thread was marked as fixed upstream, but this head still lacks the case.

💚 Proposed additional test for the payload branch
 def test_extract_pytest_command_env_rejects_malformed_export(ci_submit_module: ModuleType):
     lines = ['export pytestCommand="LLM_ROOT=/src LLM_MODELS_ROOT=/models pytest']
 
     with pytest.raises(ValueError, match="cannot parse exported pytestCommand"):
         ci_submit_module.extract_pytest_command_env(lines, "LLM_MODELS_ROOT")
+
+
+def test_extract_pytest_command_env_rejects_malformed_payload(ci_submit_module: ModuleType):
+    # The outer export parses; the extracted payload has an unbalanced quote.
+    lines = ["export pytestCommand='LLM_ROOT=/src \"unterminated'"]
+
+    with pytest.raises(ValueError, match="cannot parse pytestCommand payload"):
+        ci_submit_module.extract_pytest_command_env(lines, "LLM_MODELS_ROOT")
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unittest/scripts/test_perf_submit.py` around lines 302 - 306, Update
test_extract_pytest_command_env_rejects_malformed_export and the corresponding
test near line 332 so the outer export quote is closed while the extracted
pytestCommand payload remains unbalanced. This ensures shlex.split succeeds and
exercises the payload parser’s malformed-input ValueError branch rather than the
whole-line parsing error.
🧹 Nitpick comments (5)
jenkins/scripts/perf/submit.py (1)

656-683: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider reusing one pytestCommand parser.

_pytest_command_tokens at lines 92-109 already locates the export pytestCommand= line, strips the outer quotes, and shell-splits the payload. extract_pytest_command_env repeats that work with a different mechanism. One shared helper that returns the payload tokens would keep both call sites consistent if the Groovy emission format changes.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@jenkins/scripts/perf/submit.py` around lines 656 - 683, Refactor
extract_pytest_command_env to reuse the existing _pytest_command_tokens helper
for locating, unquoting, and splitting pytestCommand instead of duplicating that
parsing logic. Preserve its leading environment-variable scan, name matching,
and _PytestCommandEnvMissing behavior, while retaining appropriate errors from
the shared parser.
tests/unittest/others/test_cache_transceiver_precheck_config.py (1)

512-520: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Execute only the model-root export line.

Line 512 joins every generated prefix line into the script that bash runs. The assertion needs only the export LLM_MODELS_ROOT= line. If precheck_prefix_lines later emits a line that invokes a command, this test would run it inside CI. Filter to the export line to keep the quoting assertion and remove that surface.

♻️ Proposed narrowing
-    script = "\n".join(lines) + '\nprintf "%s" "$LLM_MODELS_ROOT"\n'
+    export_line = next(line for line in lines if line.startswith("export LLM_MODELS_ROOT="))
+    script = export_line + '\nprintf "%s" "$LLM_MODELS_ROOT"\n'
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unittest/others/test_cache_transceiver_precheck_config.py` around lines
512 - 520, Update the test’s script construction before subprocess.run to retain
only the generated export LLM_MODELS_ROOT= line from precheck_prefix_lines,
excluding all other prefix commands; preserve the existing bash execution and
stdout assertion for validating its quoting.
tests/unittest/disaggregated/test_transceiver_bounded_polling.py (2)

94-125: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider sharing _FakeTask and _FakeClock with the harness test.

tests/unittest/disaggregated/test_cache_transceiver_harness.py defines a wait and a monotonic helper with the same bodies. Both modules are in the same directory, so a conftest.py fixture or a small shared helper module would keep the two doubles from drifting as TaskStatus handling changes.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unittest/disaggregated/test_transceiver_bounded_polling.py` around
lines 94 - 125, Share the duplicated _FakeTask and _FakeClock test doubles
between test_transceiver_bounded_polling.py and
test_cache_transceiver_harness.py by moving them into a shared conftest.py
fixture or helper module. Update both tests to import or use the shared
implementations, preserving their existing wait, monotonic, timeout-tracking,
and TaskStatus behavior.

151-174: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider deriving the session double from the real constructor.

_make_tx_session uses object.__new__(TxSession) and then sets a hand-picked attribute subset. It omits _base_args, request_id, transfer_start_time, and transfer_end_time, which the real __init__ sets. disagg_request_id reads self._base_args, so a future wait_complete or close change that logs the request id would fail these tests with AttributeError instead of a readable assertion. test_tx_session_first_send_anchors_deadline_once at lines 663-696 already shows the real constructor works with mocks; reusing that path here would remove the drift risk.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unittest/disaggregated/test_transceiver_bounded_polling.py` around
lines 151 - 174, Update _make_tx_session to construct TxSession through its real
__init__ path, using the same mock-based setup demonstrated by
test_tx_session_first_send_anchors_deadline_once, instead of object.__new__ with
manually assigned fields. Preserve the helper’s configurable kv_tasks, need_aux,
aux_task, timeout_s, and deadline_monotonic_s behavior while ensuring
constructor-initialized fields such as _base_args, request_id,
transfer_start_time, and transfer_end_time are present.
tests/unittest/disaggregated/test_cache_transceiver_harness.py (1)

445-651: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a ctx successful-release test

tests/unittest/disaggregated/test_cache_transceiver_harness.py is registered in tests/integration/test_lists/test-db/l0_h100.yml. Add a ctx success case that covers completion validation, the release handshake, release order, and exactly one free_sequence call.

Coverage summary: The added tests cover generation ownership, timeout, dispatch failure, handshake validation, release safety, and abort handling. No tests were removed. All tests in this file are included through the CI test-list entry. Verdict: insufficient until the ctx success path is covered.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/unittest/disaggregated/test_cache_transceiver_harness.py` around lines
445 - 651, Add a successful context-release test to
TestRequestTransferOwnershipFlow that exercises completed-request validation and
the release handshake, asserting the expected event ordering through free and
exactly one free_sequence call with the context ownership arguments. Use the
existing _run_ctx_request helper and established handshake/final-response
conventions, while preserving the current failure and timeout coverage.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@examples/disaggregated/slurm/cache_transceiver_test/run_cache_transceiver_test.py`:
- Around line 793-797: Secure the ZMQ control channel in
run_cache_transceiver_test.py before any peer payload reaches the pickle.loads
calls in the leader message-handling paths. Reuse the sibling precheck’s
per-session key, 0600 address-file exchange, and pack_msg/unpack_msg framing so
both bind/connect setup and every send/receive path authenticate and validate
messages, eliminating unauthenticated pickle deserialization.

---

Duplicate comments:
In `@tests/unittest/scripts/test_perf_submit.py`:
- Around line 302-306: Update
test_extract_pytest_command_env_rejects_malformed_export and the corresponding
test near line 332 so the outer export quote is closed while the extracted
pytestCommand payload remains unbalanced. This ensures shlex.split succeeds and
exercises the payload parser’s malformed-input ValueError branch rather than the
whole-line parsing error.

---

Nitpick comments:
In `@jenkins/scripts/perf/submit.py`:
- Around line 656-683: Refactor extract_pytest_command_env to reuse the existing
_pytest_command_tokens helper for locating, unquoting, and splitting
pytestCommand instead of duplicating that parsing logic. Preserve its leading
environment-variable scan, name matching, and _PytestCommandEnvMissing behavior,
while retaining appropriate errors from the shared parser.

In `@tests/unittest/disaggregated/test_cache_transceiver_harness.py`:
- Around line 445-651: Add a successful context-release test to
TestRequestTransferOwnershipFlow that exercises completed-request validation and
the release handshake, asserting the expected event ordering through free and
exactly one free_sequence call with the context ownership arguments. Use the
existing _run_ctx_request helper and established handshake/final-response
conventions, while preserving the current failure and timeout coverage.

In `@tests/unittest/disaggregated/test_transceiver_bounded_polling.py`:
- Around line 94-125: Share the duplicated _FakeTask and _FakeClock test doubles
between test_transceiver_bounded_polling.py and
test_cache_transceiver_harness.py by moving them into a shared conftest.py
fixture or helper module. Update both tests to import or use the shared
implementations, preserving their existing wait, monotonic, timeout-tracking,
and TaskStatus behavior.
- Around line 151-174: Update _make_tx_session to construct TxSession through
its real __init__ path, using the same mock-based setup demonstrated by
test_tx_session_first_send_anchors_deadline_once, instead of object.__new__ with
manually assigned fields. Preserve the helper’s configurable kv_tasks, need_aux,
aux_task, timeout_s, and deadline_monotonic_s behavior while ensuring
constructor-initialized fields such as _base_args, request_id,
transfer_start_time, and transfer_end_time are present.

In `@tests/unittest/others/test_cache_transceiver_precheck_config.py`:
- Around line 512-520: Update the test’s script construction before
subprocess.run to retain only the generated export LLM_MODELS_ROOT= line from
precheck_prefix_lines, excluding all other prefix commands; preserve the
existing bash execution and stdout assertion for validating its quoting.
🪄 Autofix

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: Enterprise

Run ID: d4271b36-13db-4efa-b3f8-acebffb26dac

📥 Commits

Reviewing files that changed from the base of the PR and between ac54855 and d0a7c6e.

📒 Files selected for processing (18)
  • examples/disaggregated/slurm/cache_transceiver_test/README.md
  • examples/disaggregated/slurm/cache_transceiver_test/config.yaml
  • examples/disaggregated/slurm/cache_transceiver_test/run_cache_transceiver_test.py
  • jenkins/scripts/perf/local/submit.py
  • jenkins/scripts/perf/submit.py
  • tensorrt_llm/_torch/disaggregation/native/transfer.py
  • tensorrt_llm/_torch/disaggregation/transceiver.py
  • tensorrt_llm/llmapi/llm_args.py
  • tests/scripts/perf-sanity/cache_transceiver_precheck/README.md
  • tests/scripts/perf-sanity/cache_transceiver_precheck/precheck_config.py
  • tests/scripts/perf-sanity/cache_transceiver_precheck/run_precheck.py
  • tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-fp4_8k1k_con180_ctx3_dep4_gen1_dep32_eplb384_mtp3_ccb-NIXL.yaml
  • tests/unittest/disaggregated/test_cache_transceiver_harness.py
  • tests/unittest/disaggregated/test_cache_transceiver_precheck_e2e.py
  • tests/unittest/disaggregated/test_transceiver_bounded_polling.py
  • tests/unittest/others/test_cache_transceiver_precheck_config.py
  • tests/unittest/others/test_cache_transceiver_precheck_run.py
  • tests/unittest/scripts/test_perf_submit.py
🚧 Files skipped from review as they are similar to previous changes (9)
  • examples/disaggregated/slurm/cache_transceiver_test/config.yaml
  • tensorrt_llm/_torch/disaggregation/transceiver.py
  • tests/scripts/perf-sanity/cache_transceiver_precheck/precheck_config.py
  • tests/scripts/perf-sanity/cache_transceiver_precheck/README.md
  • tensorrt_llm/_torch/disaggregation/native/transfer.py
  • examples/disaggregated/slurm/cache_transceiver_test/README.md
  • tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-fp4_8k1k_con180_ctx3_dep4_gen1_dep32_eplb384_mtp3_ccb-NIXL.yaml
  • jenkins/scripts/perf/local/submit.py
  • tests/unittest/disaggregated/test_cache_transceiver_precheck_e2e.py

@brnguyen2 brnguyen2 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving — the comments below are optional touch-ups, not blockers.

All five threads from the previous round are genuinely fixed, not just resolved:

  • Silent sender poll loopTxSession.wait_complete now enforces an absolute deadline anchored at the first send(), with a finite 60 s fallback when kv_transfer_timeout_ms is null, and expiry logs the rid and deadline source ([transceiver.py:753](https://github.com/NVIDIA/TensorRT-LLM/pull/17137/files#diff-3cab8f284e64d42a9c7004535a761cabcdc7323d787ddbecdbd467b7e4f935b9R753)) while retaining the session and pages.
  • Dead TIMEOUT branch — reachable again (option 2 as discussed), and the timed_out plumbing is gone from _ctx_consensus_outcome.
  • blocking=TrueNone aux window — closed: once every KV task is terminal, a missing required aux task becomes an invariant ERROR ([transfer.py:1461](https://github.com/NVIDIA/TensorRT-LLM/pull/17137/files#diff-337dabe32d190384907e8c1330d67ed73ff63f41fbf0c1a347ff9f2ad18d4590R1461)), and respond_and_send_async does install aux synchronously via _finalize_send before publishing to _send_reqs, so the invariant holds.
  • [:num_prompt_blocks] slice_request_block_views now raises on under-allocation with rid/layer/required/available before trimming surplus speculative pages.
  • LLM_MODELS_ROOT hard abort_resolve_llm_models_root falls back to the submitter environment and fails closed only when the precheck is actually enabled.

Test coverage for the new deadline semantics is thorough — anchor-once, boundary-precedence races, shared task/aux deadline, and the None-fallback path all have dedicated cases in test_transceiver_bounded_polling.py.

One non-blocking asymmetry noted inline: the Rx side didn't get the None-timeout fallback the Tx side did ([transceiver.py:130](https://github.com/NVIDIA/TensorRT-LLM/pull/17137/files#diff-3cab8f284e64d42a9c7004535a761cabcdc7323d787ddbecdbd467b7e4f935b9R130)).

Merge order as described: land #17223 first, after which this PR reduces to the one YAML delta already validated by the targeted GB300 stage.

Comment thread tensorrt_llm/_torch/disaggregation/transceiver.py
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65119 [ run ] completed with state FAILURE. Commit: d0a7c6e
/LLM/main/L0_MergeRequest_PR pipeline #52916 (Partly Tested) completed with status: 'UNSTABLE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ 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

Link to invocation

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@chienchunhung
chienchunhung force-pushed the codex/nvbug-6480621-timeout-60s-ci branch from d0a7c6e to 51841d8 Compare August 11, 2026 18:25

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65363 [ run ] triggered by Bot. Commit: 51841d8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65363 [ run ] completed with state FAILURE. Commit: 51841d8
/LLM/main/L0_MergeRequest_PR pipeline #53128 (Partly Tested) 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 --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65410 [ run ] triggered by Bot. Commit: 51841d8 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65410 [ run ] completed with state FAILURE. Commit: 51841d8
/LLM/main/L0_MergeRequest_PR pipeline #53167 (Partly Tested) 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
chienchunhung force-pushed the codex/nvbug-6480621-timeout-60s-ci branch from 51841d8 to 3fa575a Compare August 12, 2026 18:32
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
@chienchunhung
chienchunhung force-pushed the codex/nvbug-6480621-timeout-60s-ci branch from 3fa575a to de31862 Compare August 15, 2026 00:32

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --disable-reuse-test --stage-list "GB300-44_GPUs-11_Nodes-PyTorch-Disagg-PerfSanity-CTX3-NODE1-GPU4-GEN1-NODE8-GPU32-Post-Merge-2"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #66404 [ run ] triggered by Bot. Commit: de31862 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #66404 [ run ] completed with state SUCCESS. Commit: de31862
/LLM/main/L0_MergeRequest_PR pipeline #54047 (Partly Tested) completed with status: 'SUCCESS'

CI Report

Link to invocation

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 ci: full pre-merge approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants