Repository navigation
[https://nvbugs/7003528][fix] Align ADP connector fixtures with executor contracts - #21465
Conversation
…tor contracts Initialize the optional executor state used by cleanup and transfer paths, and return the requests/placement pair from the queue-pop mocks. Let the executor select its real no-transceiver coordinator instead of installing a truthy mock that incorrectly reports disaggregation errors. Retain the existing assertions and remove this module's bug waiver. Validation on ARM64 CPU at base cbef70d: - test_connector_adp.py: 39 failed / 97 passed before, 136 passed after. - test_connector_shared_pool.py: 7 passed before and after. - The fixed module also passes all 136 cases with the waiver file enabled. Fixes https://nvbugs/7003528 Signed-off-by: trtllm-agent <296075020+trtllm-agent@users.noreply.github.com>
|
No actionable comments were generated in the recent review. WalkthroughThe connector tests add executor state defaults, update waiting-queue mock results, and remove two disaggregation coordinator initializations. The integration skip entry for this test file is removed. ChangesConnector test updates
Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Suggested reviewers: Merge Risk:
|
|
/bot run --disable-fail-fast |
|
PR_Github #82061 [ run ] triggered by Bot. Commit: |
brnguyen2
left a comment
There was a problem hiding this comment.
Approving — the comments below are optional touch-ups, not blockers.
Removing the _disagg_coordinator mock is the key fix. PyExecutor.disagg only builds the coordinator when __dict__ has none, so with kv_cache_transceiver = None the tests now run the real NoopDisaggCoordinator and no longer depend on a MagicMock's truthy return value. One optional fidelity nit is inline.
|
Automatically added "ci: full pre-merge approved" because this PR has satisfied the required GitHub review approvals. Unresolved review conversations and other required checks remain independent merge requirements. |
|
PR_Github #82061 [ run ] completed with state |
Signed-off-by: Simeng Liu <simengl@nvidia.com>
|
/bot reuse-pipeline |
|
PR_Github #82377 [ reuse-pipeline ] triggered by Bot. Commit: |
|
PR_Github #82377 [ reuse-pipeline ] completed with state |
…in the ADP batch-start test _can_queue reads self.model_engine.cuda_graph_runner (NVIDIA#20078). The test builds its executors with object.__new__, and its file was waived when NVIDIA#20078 stubbed the model engine for the other _can_queue tests, so un-waiving it (NVIDIA#21465) left it without one. Give it the same stub. Signed-off-by: Kaiyu Xie <26294424+kaiyux@users.noreply.github.com>
Summary
The ADP connector tests construct
PyExecutorwithout its initializer. Their fixtures no longer supplied all state used by cleanup and transfer handling, and their queue-pop mocks still returned a request list instead of the current(requests, placement)pair.The loop tests also installed an unconstrained disaggregation coordinator mock. Its truthy
handle_errors_synced()result falsely selected an early response flush even though these tests configure no KV cache transceiver. Removing that mock lets the executor select its real no-transceiver coordinator, which returnsFalsefor this operation.([], None)from the empty queue-pop mocks.All existing assertions, exception checks, parameterizations and timeout values are retained.
Verification
ARM64 CPU verification on base
cbef70dbc9879798b4106c694928d59976cf0ac1, with the same native artifacts for both arms:pytest -m cpu_only -p no:xdist tests/unittest/_torch/test_connector_adp.py: 39 failed / 97 passed before; 136 passed after, with no skipped tests.pytest -m cpu_only -p no:xdist tests/unittest/_torch/test_connector_shared_pool.py: 7 passed on both arms.Fixes https://nvbugs/7003528
Dev Engineer Review
The fixture now initializes the
PyExecutorresponse-mode and optional-resource fields, and empty waiting-queue mocks return([], None). The tests use the real no-transceiver coordinator instead of a mock that reports disaggregation errors. These changes align the fixtures with executor contracts. No production behavior changes are reported.The waiver for
test_connector_adp.pywas removed. The test remains in the CPU CI list. The author reports that all 136 ADP tests passed on ARM64 CPU after the changes, and that pre-commit checks passed for both changed files.QA Engineer Review
The PR modifies one test module and one waiver list. It changes fixture setup and queue-pop mocks; it does not add or remove test functions or parameterizations. The module continues to cover ADP connector behavior, failure handling, recovery, cancellation, transfer deadlines, and shutdown paths.
The test is listed in
tests/integration/test_lists/test-db/l0_cpu.yml. The supplied evidence does not show a manual-QA list entry. Coverage verdict: sufficient, based on the reported 136 passing tests and the existing CI listing.Per-File QA Perspective
tests/unittest/_torch/test_connector_adp.py: Covers ADP connector and executor behavior, including recovery and error paths. Listed in the CPU CI test list; the author reports 136 passing tests.tests/integration/test_lists/waives.txt: Removes the waiver for the ADP test module, allowing it to run without that exclusion. The test remains listed in CPU CI.