Skip to content

Commit 4a76699

Browse files
authored
[diffusion] fix: fix --warmup silently downgrading server-based warmup to request mode (#29514)
1 parent e6cbc8f commit 4a76699

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

python/sglang/multimodal_gen/runtime/server_args.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,8 @@ def _adjust_warmup(self):
726726
if mode_explicit or not legacy_explicit:
727727
self.warmup = self.warmup_mode != "off"
728728
self.server_warmup = self.warmup_mode == "server"
729+
elif self.warmup:
730+
self.server_warmup = self.server_warmup or self.warmup_mode == "server"
729731

730732
# Explicit resolutions imply warmup is on (request-based).
731733
if self.warmup_resolutions is not None:

python/sglang/multimodal_gen/test/unit/test_server_args.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,29 @@ def test_resolutions_force_warmup_on(self):
588588
self.assertFalse(sa.server_warmup)
589589
self.assertEqual(sa.warmup_mode, "request")
590590

591+
def test_legacy_warmup_on_uses_defaulted_server_mode(self):
592+
# `serve --warmup` (legacy ON, mode defaulted to "server" but not
593+
# explicit) must resolve to server-based warmup, not silently downgrade
594+
# to request mode.
595+
sa = self._resolve(warmup_mode="server", warmup=True, explicit=("warmup",))
596+
self.assertEqual(sa.warmup_mode, "server")
597+
self.assertTrue(sa.warmup)
598+
self.assertTrue(sa.server_warmup)
599+
600+
def test_legacy_warmup_with_resolutions_runs_server_warmup(self):
601+
# Dead-zone regression: `serve --warmup --warmup-resolutions X` must run
602+
# server-based (synthetic) warmup, not end up with no warmup at all
603+
# (request-based warmup bails out when warmup_resolutions is set).
604+
sa = self._resolve(
605+
warmup_mode="server",
606+
warmup=True,
607+
warmup_resolutions=["1024x1024"],
608+
explicit=("warmup",),
609+
)
610+
self.assertTrue(sa.warmup)
611+
self.assertTrue(sa.server_warmup)
612+
self.assertEqual(sa.warmup_mode, "server")
613+
591614
def test_disagg_role_disables_server_warmup(self):
592615
from sglang.multimodal_gen.runtime.disaggregation.roles import RoleType
593616

0 commit comments

Comments
 (0)