[TRTLLM-12721][fix] Harden disagg cancellation consensus and buffer ownership - #15794
[TRTLLM-12721][fix] Harden disagg cancellation consensus and buffer ownership#15794chienchunhung wants to merge 1 commit into
Conversation
871418e to
8320739
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #56693 [ run ] triggered by Bot. Commit: |
Combine the current NVIDIA#15238, NVIDIA#15737, NVIDIA#15794, and NVIDIA#15795 snapshots into one parent commit for NVIDIA#15738. The source PRs remain independently reviewable and mergeable. Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
/bot run --disable-fail-fast |
|
PR_Github #56700 [ run ] triggered by Bot. Commit: |
|
PR_Github #56693 [ run ] completed with state |
Combine the current NVIDIA#15238, NVIDIA#15737, NVIDIA#15794, and NVIDIA#15795 snapshots into one parent commit for NVIDIA#15738. The source PRs remain independently reviewable and mergeable. Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Combine the current NVIDIA#15238, NVIDIA#15737, NVIDIA#15794, and NVIDIA#15795 snapshots into one parent commit for NVIDIA#15738. The source PRs remain independently reviewable and mergeable. Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
8101578 to
edf9705
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #56738 [ run ] triggered by Bot. Commit: |
|
PR_Github #56700 [ run ] completed with state |
|
PR_Github #56738 [ run ] completed with state
|
Combine the current NVIDIA#15238, NVIDIA#15737, NVIDIA#15794, and NVIDIA#15795 snapshots into one parent commit for NVIDIA#15738. The source PRs remain independently reviewable and mergeable. Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
edf9705 to
7db2070
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #56760 [ run ] triggered by Bot. Commit: |
|
PR_Github #56760 [ run ] completed with state
|
7db2070 to
891251a
Compare
|
/bot run --disable-fail-fast --stage-list "A10-CPP-1,H100_PCIe-CPP-1,DGX_H100-4_GPUs-CPP-1,A100X-PyTorch-1" |
|
PR_Github #57041 [ run ] triggered by Bot. Commit: |
|
PR_Github #57041 [ run ] completed with state
|
891251a to
81dc282
Compare
|
/bot run --disable-fail-fast --stage-list "A10-CPP-1,H100_PCIe-CPP-1,DGX_H100-4_GPUs-CPP-1" |
|
PR_Github #57120 [ run ] triggered by Bot. Commit: |
|
PR_Github #57120 [ run ] completed with state
|
81dc282 to
1864ea1
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #57239 [ run ] triggered by Bot. Commit: |
|
PR_Github #57239 [ run ] completed with state
|
…wnership Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
1864ea1 to
e8fba95
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #59292 [ run ] triggered by Bot. Commit: |
|
PR_Github #59292 [ run ] completed with state
|
Summary
Harden the remaining local protocol and fail-closed safety guarantees for default-off disaggregated in-flight KV-transfer cancellation.
#15238 and #15737 are merged and inherited from
main; this PR does not duplicate their sender-liveness, synchronous-generation, queued-cancellation, transfer-session ownership, or deferred-cleanup work. It adds the rank-consistent activation, distributed terminal-state accounting, and teardown safeguards still needed by the downstream lifecycle and peer-negotiation PRs.Cancellation remains disabled by default. Explicit opt-in is limited to asynchronous C++ NIXL/UCX transfer with a positive timeout, overlap enabled, PP=1, CP=1, attention DP disabled, layerwise transfer disabled, and zero-copy disabled. Dynamic and preallocated transfer buffers remain supported.
Why
The merged implementation can cancel and retain transfer resources safely, but several local protocol gaps remain:
Without these guarantees, an opt-in deployment can diverge across ranks, retire bookkeeping prematurely, reuse an unproven buffer, or race teardown.
Changes
Rank-consistent activation
CacheTransceiver,CacheTransferLayer,DataContext, formatters, and sender/receiver objects instead of rereading the process environment throughout the transfer path.Distributed transfer-state accounting
Lifetime and teardown hardening
TransferSessionis destroyed while it still owns reserved receive slots.Coverage
Add focused coverage for:
TransferSessioncleanup;Known limits
Validation
e8fba959e1, directly on currentmain58d8964d13, which contains merged [TRTLLM-12721][fix] Add gated C++ NIXL in-flight cancellation and safe cleanup #15238 and [https://nvbugs/6342844][fix] Prevent disaggregated KV transfer stalls #15737.git diff --check, and Python syntax checks pass locally.Dependency graph
Arrows point from prerequisite to dependent. #15795 and #15798 do not block this default-off PR.
flowchart LR MAIN["main<br/>#15238 and #15737 merged"] PR15794["#15794<br/>local protocol and fail-closed safety<br/>(default off)"] PR15795["#15795<br/>PyExecutor and IPC lifecycle"] PR15798["#15798<br/>CTX↔GEN negotiation"] PR15799["#15799<br/>peer-protocol design only"] SAFETY["runtime peer-terminal implementation<br/>or approved bounded fail/restart policy"] PR15738["#15738<br/>qualified default-on policy"] MAIN --> PR15794 PR15794 --> PR15795 PR15794 --> PR15798 PR15798 --> PR15799 PR15799 -.->|design input| SAFETY PR15795 --> PR15738 PR15798 --> PR15738 SAFETY --> PR15738