Prhub

#27803 [CI] Fix stale ngram bookkeeping owner sites

原始 PR 作者 mmangkad 合并时间 2026-06-10 19:51 文件变更 1 提交数 1 评论 3 代码增减 +0 / -15

执行摘要

修复 ngram 书签所有权失效测试

PR #17260 删除了 ngram 推测解码的旧路径 NgramVerifyInput._fill_requests_free_cache,但测试文件中的书签所有权记录未同步删除,导致 PR #27710 新增的所有权测试失败。具体见 CI 失败日志:https://github.com/sgl-project/sglang/actions/runs/27271813037/job/80542982353

该 PR 改动简单但有必要,值得合并以维护测试可靠性。

讨论亮点

无实质性讨论,仅由作者触发 CI 重跑和标签操作。

实现拆解

  1. 定位问题:在 test/registered/unit/spec/test_decode_bookkeeping_ownership.py 中,_OWNER_SITES 字典包含了已废弃的 ngram 书签所有权条目,这些条目引用了不存在的函数。
  2. 清理记录:删除了 3 条过时的所有权记录:
    • (speculative/ngram_info.py, NgramVerifyInput._fill_requests, spec_verify_ct): 1
    • (speculative/ngram_info.py, NgramVerifyInput._free_cache, kv_committed_len): 1
    • (speculative/ngram_info.py, NgramVerifyInput._free_cache, kv_allocated_len): 1
  3. 验证:通过 /rerun-test test/registered/unit/spec/test_decode_bookkeeping_ownership.py 触发 CI 重跑,测试通过。
文件 模块 状态 重要度
test/registered/unit/spec/test_decode_bookkeeping_ownership.py 书签所有权 modified 4.23

关键源码片段

test/registered/unit/spec/test_decode_bookkeeping_ownership.py test-coverage

删除了 3 条过时的 ngram 书签所有权记录,修复 CI 测试失败。

# 删除前:包含 NgramVerifyInput._fill_requests 和 _free_cache 的过时记录
# 删除后:只保留有效的所有权站点
_OWNER_SITES = {
    # ... 其他有效条目 ...
​
    # spec v1: each verify path owns its own settlement
    ("speculative/eagle_info.py", "EagleVerifyInput.verify", "kv_committed_len"): 1,
    ("speculative/eagle_info.py", "EagleVerifyInput.verify", "kv_allocated_len"): 1,
    ("speculative/eagle_info.py", "EagleVerifyInput.verify", "spec_verify_ct"): 1,
    # 以下三条已被 PR #17260 删除的路径,故移除
    # ("speculative/ngram_info.py", "NgramVerifyInput._fill_requests", "spec_verify_ct"): 1,
    # ("speculative/ngram_info.py", "NgramVerifyInput._free_cache", "kv_committed_len"): 1,
    # ("speculative/ngram_info.py", "NgramVerifyInput._free_cache", "kv_allocated_len"): 1,
    ("speculative/dflash_info.py", "DFlashVerifyInput.verify", "kv_committed_len"): 1,
    ("speculative/dflash_info.py", "DFlashVerifyInput.verify", "kv_allocated_len"): 1,
    ("speculative/dflash_info.py", "DFlashVerifyInput.verify", "spec_verify_ct"): 1,
    # ... 其他有效条目 ...
}

评论区精华

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

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

风险与影响

风险极低。仅删除测试文件中的过时记录,不影响生产代码。测试框架在该文件新增时会扫描所有书签站点,删除的记录已无对应源码,不会引发回归。

影响范围仅限于测试文件,修复了 ngram 所有权测试的 CI 失败,使后续 PR 能正常通过该测试。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论