执行摘要
修复 pause_generation 中由于 batch 处理不当导致的 tensor 形状不匹配错误。
根据PR body描述,根因是在pause_generation中,调用filter_batch后无条件调用merge_batch。当last_batch的所有请求完成时,filter_batch会清空reqs但早期返回,tensors仍保留旧大小,导致merge_batch后tensor形状与reqs数量不一致,破坏len(reqs) == seq_lens.shape[0]的不变量,进而引发KV-cache分配错误和RuntimeError: The size of tensor a must match the size of tensor b。
建议技术管理者和工程师精读此PR,以理解调度中batch处理的一致性原则。关注pause_generation函数的修改如何与get_next_batch_to_run保持逻辑对齐,以及模拟测试的设计如何隔离核心依赖,这对于维护调度系统的稳定性有参考价值。
在review评论中,reviewer ispobock提出两条建议:一是询问测试是否遵循指定的编写指南(https://github.com/sgl-project/sglang/blob/main/.claude/skills/write-sglang-test/SKILL.md),二是建议将单元测试移动到https://github.com/sgl-project/sglang/tree/main/test/registered/unit目录下。这些讨论关注测试的规范性和位置,但并未涉及核心逻辑的争议或决策结论。
参与讨论