From 32d9998b9d4e640419a640452a910b0c4c03aaf0 Mon Sep 17 00:00:00 2001 From: Shangming Cai Date: Wed, 6 May 2026 23:32:04 +0800 Subject: [PATCH] [PD] Prevent update_status to Failed from cleared entries (#24539) Signed-off-by: Shangming Cai --- python/sglang/srt/disaggregation/common/conn.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/sglang/srt/disaggregation/common/conn.py b/python/sglang/srt/disaggregation/common/conn.py index 05f385f69..796563325 100644 --- a/python/sglang/srt/disaggregation/common/conn.py +++ b/python/sglang/srt/disaggregation/common/conn.py @@ -190,6 +190,12 @@ class CommonKVManager(BaseKVManager): ): self.req_to_decode_prefix_len.pop(bootstrap_room, None) if bootstrap_room not in self.request_status: + # Do not resurrect a cleared entry with Failed: once clear() has + # popped the room from request_status, any late update_status(Failed) + # (e.g. from abort()) must be a no-op. Otherwise a Failed entry could + # pollute a future request that reuses the same bootstrap_room. + if status == KVPoll.Failed: + return self.request_status[bootstrap_room] = status else: if status == KVPoll.Failed: