From 7a12255b6e7c1f1af75356fc31322a9436295a2b Mon Sep 17 00:00:00 2001 From: Kangyan-Zhou Date: Fri, 6 Mar 2026 16:11:41 -0800 Subject: [PATCH] fix: set first_token_time before computing decode_throughput for single-batch completions (#19984) Co-authored-by: Claude Opus 4.6 --- python/sglang/srt/managers/tokenizer_manager.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/sglang/srt/managers/tokenizer_manager.py b/python/sglang/srt/managers/tokenizer_manager.py index 7dca38d6c..ac8512fbc 100644 --- a/python/sglang/srt/managers/tokenizer_manager.py +++ b/python/sglang/srt/managers/tokenizer_manager.py @@ -1612,6 +1612,11 @@ class TokenizerManager(TokenizerCommunicatorMixin, TokenizerManagerMultiItemMixi state.finished = recv_obj.finished_reasons[i] is not None if state.finished: + # Ensure first_token_time is set before computing decode_throughput. + # Without this, requests that finish on their first output batch + # would have first_token_time=0.0, producing bogus throughput. + if state.time_stats.first_token_time == 0.0: + state.time_stats.set_first_token_time() state.time_stats.trace_ctx.trace_set_root_attrs( self.convert_to_span_attrs(state, recv_obj, i) )