From e3d4f48e5547ab023c2f67effb2d93eaf2221642 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Fri, 31 Jul 2026 04:43:09 -0700 Subject: [PATCH] [Fix] missing max_context_len on HybridAttnBackend (#32690) --- python/sglang/srt/layers/attention/hybrid_attn_backend.py | 1 + test/registered/attention/test_trtllm_mha_graph_metadata.py | 1 + .../model_runner_components/test_attention_backend_setup.py | 1 + test/registered/unit/spec/test_dflash_overlap_hostsync.py | 1 + 4 files changed, 4 insertions(+) diff --git a/python/sglang/srt/layers/attention/hybrid_attn_backend.py b/python/sglang/srt/layers/attention/hybrid_attn_backend.py index 16ce62cea..9a1ebe000 100644 --- a/python/sglang/srt/layers/attention/hybrid_attn_backend.py +++ b/python/sglang/srt/layers/attention/hybrid_attn_backend.py @@ -42,6 +42,7 @@ class HybridAttnBackend(AttentionBackend): self.needs_cpu_seq_lens = ( prefill_backend.needs_cpu_seq_lens or decode_backend.needs_cpu_seq_lens ) + self.max_context_len = model_runner.model_config.context_len def _select_backend(self, forward_mode: ForwardMode) -> AttentionBackend: """ diff --git a/test/registered/attention/test_trtllm_mha_graph_metadata.py b/test/registered/attention/test_trtllm_mha_graph_metadata.py index 49363e03b..f9776949c 100644 --- a/test/registered/attention/test_trtllm_mha_graph_metadata.py +++ b/test/registered/attention/test_trtllm_mha_graph_metadata.py @@ -146,6 +146,7 @@ def test_hybrid_wrappers_forward_in_graph_hook(): token_to_kv_pool=None, req_to_token_pool=None, server_args=SimpleNamespace(speculative_attention_mode="decode"), + model_config=SimpleNamespace(context_len=2048), ), prefill_backend=make_fake("prefill", calls), decode_backend=make_fake("decode", calls), diff --git a/test/registered/unit/model_executor/model_runner_components/test_attention_backend_setup.py b/test/registered/unit/model_executor/model_runner_components/test_attention_backend_setup.py index 6ac31c236..f40b3aa45 100644 --- a/test/registered/unit/model_executor/model_runner_components/test_attention_backend_setup.py +++ b/test/registered/unit/model_executor/model_runner_components/test_attention_backend_setup.py @@ -26,6 +26,7 @@ class _FakeBackend: def test_split_full_attention_applies_model_wrapper_once(): runner = SimpleNamespace( server_args=SimpleNamespace(speculative_attention_mode="prefill"), + model_config=SimpleNamespace(context_len=2048), kv_cache_dtype=None, token_to_kv_pool=object(), req_to_token_pool=object(), diff --git a/test/registered/unit/spec/test_dflash_overlap_hostsync.py b/test/registered/unit/spec/test_dflash_overlap_hostsync.py index f7f24f274..83ad8df38 100644 --- a/test/registered/unit/spec/test_dflash_overlap_hostsync.py +++ b/test/registered/unit/spec/test_dflash_overlap_hostsync.py @@ -231,6 +231,7 @@ class TestHybridNeedsCpuSeqLens(CustomTestCase): kv_cache_dtype=torch.bfloat16, token_to_kv_pool=None, req_to_token_pool=None, + model_config=SimpleNamespace(context_len=2048), ) return HybridAttnBackend(runner, backend(prefill_flag), backend(decode_flag))