Repository navigation
[PD] Read nixl TransferInfo.is_dummy as a field in unit tests - #39100
Merged
Merged
Conversation
#36612 turns `TransferInfo.is_dummy` from a method into a bool dataclass field computed in `from_zmq()`. It updates the two call sites that existed when it was branched; `test_nixl_backend_basic.py` has since grown five more (added by #34977), and they are not textual conflicts, so the merge succeeds silently and every one of them then raises `TypeError: 'bool' object is not callable`. Convert all seven assertions in the file to field reads. The two that #36612 also touches change to identical content, so whichever lands first the merge stays clean. MUST MERGE AFTER #36612 -- `is_dummy` is still a method until it lands. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
/rerun-test test/registered/unit/disaggregation/test_nixl_backend_basic.py |
Contributor
|
Results for 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Important
Merge this only after #36612.
TransferInfo.is_dummyis still a method onmainuntil that PR lands, so this PR is red on its own and turns green the moment #36612 is in. Merging it first would breakmainin the opposite direction.#36612 turns
TransferInfo.is_dummyfrom a method into abooldataclass field computed once infrom_zmq(). It converts the two call sites that existed when it was branched (2026-08-27):test_nixl_backend_basic.pyhas since grown five more, added by #34977 (2018c64e22, 2026-09-11) — after #36612's last push on 2026-09-09:These are not textual conflicts, so
git mergesucceeds silently andbase-a-test-cputhen goes red with:Verified with a local trial merge of #36612 into current
main:Automatic merge went well, then fiveis_dummy()call sites remain.Modifications
Convert all seven
info.is_dummy()assertions intest_nixl_backend_basic.pyto field reads. No other change — the productionis_dummy()call sites innixl/conn.pyare #36612's to convert.All seven (not just the five #36612 misses) so the file is self-consistent whichever order the two land in; the two that overlap change to identical content, so the merge stays clean either way.
Scope check
I audited the rest of the disaggregation unit tests against #36612's other behavioral changes (the rewritten
CommonKVManager.update_statuspolicy, the deleted NIXLupdate_statusoverride, and the new settle-then-raise barrier intransfer_worker). Nothing else breaks:TestNixlUpdateStatus— both cases (Failed is terminal; a missing room is not resurrected by Failed) are exactly what the new shared policy implements.TestNixlTransferWorker— buildsTransferInfoby keyword withoutis_dummy, which picks up the new= Falsedefault and matches the old computed value; itscheck_xfer_statestub returnsDONE, so_await_handlessettles on the first pass and the worker never enters the new failure path.TestNixlNodeFailure,TestNixlNotifications,TestNixlReceiverPoll— unaffected.test_nixl_deferred_kv_release.py,test_receiver_connection_pool.py,test_decode_queue_cleanup.py,test_kv_transfer_replica_metric.py— all mock or stubupdate_status/failure_exception.test_nixl_sender_failure_cleanup.py— coversNixlKVSender.failure_exception; [PD] Share the prefill->decode failure notification across backends #36612 only changes the receiver's.test_disaggregation_wire.py— itsis_dummyassertions are mooncake's, already a field.Checklist
()removed; every line stays well under the line limit)🤖 Generated with Claude Code
CI States
Latest PR Test (Base): ❌ Run #34615153783
Latest PR Test (Extra): ❌ Run #34615153400
Latest PR Test (AMD ROCm 10): ❌ Run #34615153703