From 1fbee74fb6bf48d8c87a4e15f170583b4f3d6485 Mon Sep 17 00:00:00 2001 From: Shangming Cai Date: Wed, 20 May 2026 11:17:42 +0800 Subject: [PATCH] [PD] Clean early abort logic in PD module (#25677) Signed-off-by: Shangming Cai --- python/sglang/srt/disaggregation/decode.py | 2 +- python/sglang/srt/managers/scheduler.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/python/sglang/srt/disaggregation/decode.py b/python/sglang/srt/disaggregation/decode.py index ee975a9b7..3bf4797f3 100644 --- a/python/sglang/srt/disaggregation/decode.py +++ b/python/sglang/srt/disaggregation/decode.py @@ -607,7 +607,7 @@ class DecodePreallocQueue: # Still poll if any receiver was aborted, otherwise it stays stuck. if all(decode_req.waiting_for_input for decode_req in self.queue) and not any( - getattr(decode_req.kv_receiver, "conclude_state", None) == KVPoll.Failed + decode_req.kv_receiver.conclude_state == KVPoll.Failed for decode_req in self.queue ): return diff --git a/python/sglang/srt/managers/scheduler.py b/python/sglang/srt/managers/scheduler.py index 9fe02d469..b178705f4 100644 --- a/python/sglang/srt/managers/scheduler.py +++ b/python/sglang/srt/managers/scheduler.py @@ -3432,16 +3432,12 @@ class Scheduler( if recv_req.abort_all or decode_req.req.rid.startswith(recv_req.rid): logger.debug(f"Abort prealloc queue request. {decode_req.req.rid=}") decode_req.kv_receiver.abort() - if not isinstance(decode_req.req.finished_reason, FINISH_ABORT): - decode_req.req.finished_reason = FINISH_ABORT() # Abort requests waiting for kvcache to release tree cache for decode_req in self.disagg_decode_transfer_queue.queue: if recv_req.abort_all or decode_req.req.rid.startswith(recv_req.rid): logger.debug(f"Abort transfer queue request. {decode_req.req.rid=}") decode_req.kv_receiver.abort() - if not isinstance(decode_req.req.finished_reason, FINISH_ABORT): - decode_req.req.finished_reason = FINISH_ABORT() # Abort requests already retracted to CPU cache if self.disagg_decode_prealloc_queue.retracted_queue: