From c2eea4d7b3a644fe4555251161f071e799364b81 Mon Sep 17 00:00:00 2001 From: Librua <112678612+Li-brua@users.noreply.github.com> Date: Tue, 2 Jun 2026 19:03:46 +0800 Subject: [PATCH] [Bugfix] Fix orphaned aborted prefill bootstrap requests in PP disaggregation (#27028) --- python/sglang/srt/disaggregation/prefill.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/python/sglang/srt/disaggregation/prefill.py b/python/sglang/srt/disaggregation/prefill.py index a71302833..96dbe7d48 100644 --- a/python/sglang/srt/disaggregation/prefill.py +++ b/python/sglang/srt/disaggregation/prefill.py @@ -333,10 +333,15 @@ class PrefillBootstrapQueue: ) for i, (req, poll) in enumerate(zip(self.queue, polls)): - if rids_to_check is not None: - # if req not in reqs_info_to_check, skip - if req.rid not in rids_to_check: - continue + if ( + rids_to_check is not None + and req.rid not in rids_to_check + and poll != KVPoll.Failed + ): + # In PP mode, successful bootstrap still requires cross-rank + # consensus. Local failures are terminal and must be drained + # even if an earlier PP rank has already removed the request. + continue if poll == KVPoll.Failed: self.scheduler.handle_bootstrap_failure(req)