From 168eba32572841b05eced3aed7d9884fba6a0ec0 Mon Sep 17 00:00:00 2001 From: Eric Zhang Date: Sun, 9 Aug 2026 12:56:36 -0400 Subject: [PATCH] [Fix] Speculative decoding crashes with DP-Attention (#33892) --- .../srt/speculative/multi_layer_eagle_worker_v2.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/python/sglang/srt/speculative/multi_layer_eagle_worker_v2.py b/python/sglang/srt/speculative/multi_layer_eagle_worker_v2.py index 3de99b605..b9280f8a2 100644 --- a/python/sglang/srt/speculative/multi_layer_eagle_worker_v2.py +++ b/python/sglang/srt/speculative/multi_layer_eagle_worker_v2.py @@ -852,9 +852,12 @@ class MultiLayerEagleDraftWorker(EagleDraftWorkerBase): forward_batch.token_to_kv_pool = self.draft_runner_list[ step ].token_to_kv_pool - self.draft_runner_list[step].attn_backend.init_forward_metadata( - forward_batch - ) + if not forward_batch.forward_mode.is_idle(): + # An idle round (DP attention: this rank has no requests) has nothing + # to plan pre-pad. Avoid raising when seq_lens is empty here. + self.draft_runner_list[step].attn_backend.init_forward_metadata( + forward_batch + ) draft_logits_output = self.draft_runner_list[step].forward( forward_batch )