Prhub

#30631 [fix] Repoint the prefetch-dispatch test at the loader's current config binding

原始 PR 作者 ch-wan 合并时间 2026-07-09 17:21 文件变更 1 提交数 1 评论 0 代码增减 +1 / -1

执行摘要

修复 prefetch 测试因导入变化导致的回归

PR #30493 合并后,sglang.srt.model_loader.loader 模块不再导出 get_global_server_args,而是通过 runtime_context.get_server_args 获取。这导致 #30146 中新增的 TestPrefetchDispatch 测试用例在 main 分支上失败,因为测试代码中的 patch 目标 get_global_server_args 已不存在。

值得合并。这是一个简单但必要的回归修复,确保测试基础设施正确同步,避免 CI 噪音。

讨论亮点

无 review 讨论。

实现拆解

一个单行变更:在 test_prefetch_checkpoints.py_patch_dispatch 方法中,将 patch 目标从 "sglang.srt.model_loader.loader.get_global_server_args" 改为 "sglang.srt.model_loader.loader.get_server_args",以匹配当前模块级别的绑定。由于 dispatch 代码现在读取的是 loader.get_server_args,拦截仍然有效。

文件 模块 状态 重要度
test/registered/unit/model_loader/test_prefetch_checkpoints.py 测试 modified 3.46

关键源码片段

test/registered/unit/model_loader/test_prefetch_checkpoints.py test-coverage

将 `_patch_dispatch` 中的 patch 目标从 `get_global_server_args` 更新为 `get_server_args`,以匹配 loader 模块当前导出的符号。

# test/registered/unit/model_loader/test_prefetch_checkpoints.py
# ... (class TestPrefetchDispatch)
​
    def _patch_dispatch(self, prefetch, disable_mmap=False):
        return (
            patch.object(
                DefaultModelLoader,
                "_prepare_weights",
                return_value=("/dummy", ["f.safetensors"], True),
            ),
            # 修复:将 patch 目标从 "get_global_server_args"(已移除)
            # 更新为 "get_server_args",匹配 loader 模块当前导出的符号
            # 这样拦截器仍能正确注入 server args
            patch(
                "sglang.srt.model_loader.loader.get_server_args",
                return_value=self._server_args(prefetch, disable_mmap),
            ),
            patch(
                "sglang.srt.model_loader.loader."
                "buffered_multi_thread_safetensors_weights_iterator",
                return_value=iter([]),
            ),
            patch(
                "sglang.srt.model_loader.loader.safetensors_weights_iterator",
                return_value=iter([]),
            ),
            patch("sglang.srt.model_loader.loader.logger.warning"),
        )

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅为一字符串替换,且保证了 patch 目标与实际导入一致。CI 确认 13/13 测试通过(修复前为 7/13)。

直接影响:修复 main 分支上 6 个失败的单元测试。间接影响:确保后续对 prefetch dispatch 逻辑的测试覆盖有效,防止类似回归。

测试基础设施回归

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论