From bf36aa4c31173125a031f3c3135ddbafaee8e60f Mon Sep 17 00:00:00 2001 From: Bi Xue Date: Sat, 21 Feb 2026 07:40:56 -0800 Subject: [PATCH] [sgl] view could hold the memory too long and introduced large memory (#19109) --- .../srt/managers/scheduler_output_processor_mixin.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/python/sglang/srt/managers/scheduler_output_processor_mixin.py b/python/sglang/srt/managers/scheduler_output_processor_mixin.py index 482bc6ca6..bc3449da0 100644 --- a/python/sglang/srt/managers/scheduler_output_processor_mixin.py +++ b/python/sglang/srt/managers/scheduler_output_processor_mixin.py @@ -119,7 +119,14 @@ class SchedulerOutputProcessorMixin: for k, v in logits_output.customized_info.items(): if k not in req.customized_info: req.customized_info[k] = [] - req.customized_info[k].append(v[i]) + # Copy the element so it doesn't retain the entire batch + # tensor/array via a view reference. + elem = v[i] + if isinstance(elem, torch.Tensor): + elem = elem.clone() + elif hasattr(elem, "copy") and callable(elem.copy): + elem = elem.copy() + req.customized_info[k].append(elem) def process_batch_result_prefill( self: Scheduler,