[PD] Fix resource leak on prealloc/transfer abort and idle check (#28022)

This commit is contained in:
luoroger37
2026-06-12 18:20:24 +08:00
committed by GitHub
parent f308abc052
commit 18989f3d48
3 changed files with 156 additions and 0 deletions
@@ -815,6 +815,8 @@ class DecodePreallocQueue(DecodeHiCachePreallocMixin):
[decode_req.req],
decode_req.req.return_logprob,
)
decode_req.kv_receiver.clear()
decode_req.kv_receiver = None
failed_reqs.append(decode_req)
indices_to_remove.add(i)
@@ -1651,6 +1653,8 @@ class DecodeTransferQueue(DecodeHiCacheTransferMixin):
self.scheduler.hisparse_coordinator.request_finished(decode_req.req)
# release pre-allocated kv cache, but don't insert into the tree since it's failed
release_kv_cache(decode_req.req, self.tree_cache, is_insert=False)
decode_req.kv_receiver.clear()
decode_req.kv_receiver = None
indices_to_remove.add(i)
if self.scheduler.metrics_reporter.enable_metrics:
self.scheduler.metrics_collector.increment_transfer_failed_reqs()
+1
View File
@@ -3380,6 +3380,7 @@ class Scheduler(
if self.disaggregation_mode == DisaggregationMode.DECODE:
idle &= len(self.disagg_decode_prealloc_queue.queue) == 0
idle &= len(self.disagg_decode_prealloc_queue.retracted_queue) == 0
idle &= len(self.disagg_decode_transfer_queue.queue) == 0
if self.decode_offload_manager is not None:
idle &= len(self.decode_offload_manager.ongoing_offload) == 0