[BUGFIX] fix edge case for qwen3-next (#14209)

This commit is contained in:
Yi Zhang
2025-12-26 17:14:37 +08:00
committed by GitHub
parent 73c0c66ff8
commit ef92b4eb88
2 changed files with 9 additions and 7 deletions

View File

@@ -2583,7 +2583,10 @@ class Scheduler(
release_kv_cache(req, self.tree_cache)
# For mamba radix cache
if req.mamba_pool_idx is not None:
if (
req.mamba_pool_idx is not None
and self.disaggregation_mode != DisaggregationMode.DECODE
):
release_kv_cache(req, self.tree_cache, is_insert=False)
logger.debug(f"Abort queued request. {req.rid=}")

View File

@@ -276,6 +276,11 @@ class MambaPool:
self.mamba_cache.conv[i][:, select_index] = 0
self.mamba_cache.temporal[:, select_index] = 0
# fill allocated slots with zeros
for i in range(len(self.mamba_cache.conv)):
self.mamba_cache.conv[i][:, select_index] = 0
self.mamba_cache.temporal[:, select_index] = 0
return select_index
def free(self, free_index: torch.Tensor):
@@ -284,12 +289,6 @@ class MambaPool:
self.free_slots = torch.cat((self.free_slots, free_index))
def clear(self):
# Zero the entire mamba cache before resetting free_slots
# This ensures that when slots are reallocated, they start with clean state
for i in range(len(self.mamba_cache.conv)):
self.mamba_cache.conv[i].zero_()
self.mamba_cache.temporal.zero_()
self.free_slots = torch.arange(self.size, dtype=torch.int64, device=self.device)
def copy_from(self, src_index: torch.Tensor, dst_index: torch.Tensor):