diff --git a/third_party/vllm/vllm/v1/core/sched/scheduler.py b/third_party/vllm/vllm/v1/core/sched/scheduler.py index 6f931ad..9a0319d 100644 --- a/third_party/vllm/vllm/v1/core/sched/scheduler.py +++ b/third_party/vllm/vllm/v1/core/sched/scheduler.py @@ -2218,7 +2218,12 @@ class Scheduler(SchedulerInterface): for group in self.kv_cache_manager.get_block_ids(req_id): sent_block_ids.update(group) self._free_blocks(self.requests[req_id]) - if sent_block_ids: + # e13391e: evict sent blocks from the prefix cache. Intended ONLY for + # session MIGRATION (the source worker won't see the session again). + # For plain PD-disagg producer->consumer transfers this destroys + # cross-turn producer reuse, so it is gated OFF by default and enabled + # only for migration experiments via VLLM_EVICT_SENT_BLOCKS=1. + if sent_block_ids and __import__("os").environ.get("VLLM_EVICT_SENT_BLOCKS") == "1": self.kv_cache_manager.evict_blocks(sent_block_ids) def _update_requests_with_invalid_blocks(