From c809274abccab61b9a7aa5220680243799460685 Mon Sep 17 00:00:00 2001 From: Yusheng Su Date: Sat, 22 Aug 2026 11:42:16 -0700 Subject: [PATCH] test: pin update_weight_version abort_all_requests=False regression PR #2589 switched the engine weight-version bump to abort_all_requests=False so in-flight requests survive a weight update, but shipped no test; this pins the exact wire payload so a revert or refactor cannot silently bring the aborts back. --- .../sglang_utils/test_sglang_engine.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/fast/backends/sglang_utils/test_sglang_engine.py b/tests/fast/backends/sglang_utils/test_sglang_engine.py index a5b6c138e90..177d19f9cc9 100644 --- a/tests/fast/backends/sglang_utils/test_sglang_engine.py +++ b/tests/fast/backends/sglang_utils/test_sglang_engine.py @@ -1,4 +1,5 @@ import time +from types import SimpleNamespace import pytest import requests @@ -30,3 +31,26 @@ def test_flush_cache_sleeps_between_pending_request_retries(monkeypatch): f"expected the loop to back off on every one of its 60 attempts, got {len(sleep_calls)} sleeps " "-- a 400 response (pending requests) must not skip the retry delay" ) + + +def test_update_weight_version_does_not_abort_in_flight_requests(monkeypatch): + pytest.importorskip("sglang") + from miles.backends.sglang_utils.sglang_engine import SGLangEngine + + engine = SGLangEngine.__new__(SGLangEngine) + engine.node_rank = 0 + engine.server_host = "fake-host" + engine.server_port = 1234 + posts = [] + + def fake_post(url, json=None): + posts.append((url, json)) + return SimpleNamespace(raise_for_status=lambda: None, json=lambda: {}) + + monkeypatch.setattr(requests, "post", fake_post) + + engine.update_weight_version("3") + + assert posts == [ + ("http://fake-host:1234/update_weight_version", {"new_version": "3", "abort_all_requests": False}) + ]