fix: unreachable error check in retraction (#15433)

Co-authored-by: Liangsheng Yin <lsyincs@gmail.com>
This commit is contained in:
shuwenn
2025-12-19 16:33:34 +08:00
committed by GitHub
co-authored by Liangsheng Yin
parent 65c098592d
commit fb17845723
+6 -18
View File
@@ -1746,21 +1746,7 @@ class ScheduleBatch(ScheduleBatchDisaggregationDecodeMixin):
)
):
if len(sorted_indices) == 1:
# Corner case: only one request left
if self.is_hybrid_swa:
full_available_size = (
self.token_to_kv_pool_allocator.full_available_size()
)
swa_available_size = (
self.token_to_kv_pool_allocator.swa_available_size()
)
assert (
full_available_size > 0 and swa_available_size > 0
), f"No space left for only one request in SWA mode {full_available_size=}, {swa_available_size=}"
else:
assert (
self.token_to_kv_pool_allocator.available_size() > 0
), f"No space left for only one request, {self.token_to_kv_pool_allocator.available_size()=}"
# Always keep at least one request
break
first_iter = False
@@ -1770,10 +1756,12 @@ class ScheduleBatch(ScheduleBatchDisaggregationDecodeMixin):
# release memory and don't insert into the tree because we need the space instantly
self.release_req(idx, len(sorted_indices), server_args)
if len(retracted_reqs) == 0:
# Corner case: only one request left
if len(sorted_indices) <= 1 and not self.check_decode_mem(
selected_indices=sorted_indices, buf_multiplier=buf_multiplier
):
# Retracting loops ends and still not enough memory
raise ValueError(
"Failed to retract any request. No space left for only one request."
"Out of memory even after retracting all other requests in the decode batch."
)
self.filter_batch(keep_indices=sorted_indices)