[None][fix] Retire KV transfer ownership after late backend completion - #19378
chienchunhung wants to merge 3 commits into
Conversation
|
/bot run --disable-fail-fast |
|
PR_Github #74245 [ run ] triggered by Bot. Commit: |
|
PR_Github #74245 [ run ] completed with state
|
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>
5760bc1 to
f372733
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #75126 [ run ] triggered by Bot. Commit: |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: NVIDIA/TensorRT-LLM/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (8)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. WalkthroughThe transfer system now commits task outcomes separately from report progress and physical quiescence. It retains ambiguous transfers until backend settlement, adds ChangesTransfer outcomes and settlement
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant SendTaskBase
participant Worker
participant Backend
participant Receiver
SendTaskBase->>Worker: report IN_DOUBT
Worker->>Backend: poll retained operation
Backend-->>Worker: fresh DONE status
Worker->>Worker: emit FAILED_QUIESCED
Worker->>Receiver: send settlement result
Receiver->>Receiver: validate and retire writer ownership
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
Allow an ownership-enabled Python KV transfer that became
IN_DOUBTto retire safely when its exact retained backend operation later proves DONE. Logical failure/cancellation stays unchanged, and admission quarantine remains closed.Depends on #19377; merge it first. Both target
mainand were rebased onto1a36f4fed; review this PR's isolated change.Major changes
IN_DOUBT → FAILED_QUIESCEDevidence in worker order; prevent later failure reports overtaking it; release retained storage once.FAILED_QUIESCEDis physical proof, not delivery success.Existing opt-in bridge only: matching binaries/configuration, unique request IDs, one immutable selected ADP writer group, and no retry/reroute remain required. No new activation profile, deadline, abort, or restart policy; unproven operations remain retained.
Verification
5760bc13b: all 36/36 new cases passed on each x86 and ARM stage (results #61069).f372733fe8: full CI #61879 is running.These CPU unit tests do not establish real NIXL/CUDA or multi-rank qualification.
Rebase is patch-equivalent. Isolated size, excluding #19377: 216 production + 527 test lines changed.
Dev Engineer Review
IN_DOUBTownership until the exact backend operation reportsDONE.FAILED_QUIESCED, identity validation, idempotent writer settlement, ordered retries, and receiver-side settlement checks.TaskHandleconstruction and removes fallback outcome inference.FAILED_QUIESCEDwire status.QA Engineer Review
test_peer_fetch.py,test_task_handle.py, andtest_transceiver_bounded_polling.py.test_transfer_late_settlement.py.test_transfer_ownership_regressions.py.tests/integration/test_lists/test-db/ortests/integration/test_lists/qa/files changed, so no list-entry update is required.Per-File QA Perspective
tensorrt_llm/_torch/disaggregation/base/backend.py: Verify stable logical outcomes while report state changes.tensorrt_llm/_torch/disaggregation/native/handle.py: Verify stable terminal results and the updated typed constructor.tensorrt_llm/_torch/disaggregation/native/transfer.py: VerifyFAILED_QUIESCEDencoding, ownership validation, ordered settlement, shutdown blocking, and unchanged failure or cancellation behavior.tests/unittest/disaggregated/test_peer_fetch.py: Covers native receive tasks, admission failures, cancellation metadata, and failure causes. No integration test-list entry applies.tests/unittest/disaggregated/test_task_handle.py: Covers ownership, terminal outcomes, late reports, cancellation, sibling events, scatter completion, and resource draining. No integration test-list entry applies.tests/unittest/disaggregated/test_transceiver_bounded_polling.py: Covers logical-outcome setup and bounded polling behavior. No integration test-list entry applies.tests/unittest/disaggregated/test_transfer_late_settlement.py: Covers late settlement, sender and receiver paths, KV and auxiliary transfers, retries, quarantine, and shutdown. No integration test-list entry applies.tests/unittest/disaggregated/test_transfer_ownership_regressions.py: Covers ownership, cancellation, shutdown, publication, and auxiliary settlement regressions. No integration test-list entry applies.