# PR #1973 完整报告

- 仓库：`THUDM/slime`
- 标题：[docker] fix patch
- 合并时间：2026-05-29 13:50
- 原文链接：http://prhub.com.cn/THUDM/slime/pull/1973

---

# 执行摘要

- 一句话：修复 sglang 补丁中 mooncake offload 和索引问题
- 推荐动作：建议合并，修复了重要的问题，且改动经过测试。

# 功能与动机

修复 sglang v0.5.12 中 mooncake offload 相关的问题，确保补丁能够正确应用。

# 实现拆解

1. **在 `conn.py` 的 `KVArgs` 中添加 `aux_buffer_names` 字段**：用于传递辅助缓冲区名称。
2. **在 `decode.py` 的 `DecodePreallocQueue` 中填充 `aux_buffer_names`**：从 `metadata_buffers.get_aux_buffer_names()` 获取并赋值。
3. **在 `mooncake/conn.py` 的 `MooncakeKVManager` 中添加 `deregister_buffer_to_engine` 方法**：用于注销所有已注册的缓冲区指针。
4. **修复 aux data 传输中的索引错误**：将原来的固定索引 `i` 改为通过 `iter_aux_transfer_specs` 获取的索引，确保数据正确传输。
5. **添加 `release_memory_occupation` 和 `resume_memory_occupation` 方法**：用于在 GPU 内存释放时清理正在进行的传输。
6. **改进 `resume_retracted_reqs` 逻辑**：在仍有 retracted 请求时，主动弹出已经完成的传输，避免死锁。

关键文件：
- `docker/patch/latest/sglang.patch`（模块 部署脚本；类别 infra；类型 bugfix；符号 KVArgs.aux_buffer_names, DecodePreallocQueue, MooncakeKVManager.deregister_buffer_to_engine, MooncakeKVManager.transfer_aux_data）: 唯一的变更文件，包含所有修复内容

关键符号：KVArgs.__init__, DecodePreallocQueue, MooncakeKVManager.deregister_buffer_to_engine, MooncakeKVManager.transfer_aux_data, MooncakeKVManager.transfer_aux_data_with_index, release_memory_occupation, resume_memory_occupation, resume_retracted_reqs


# 评论区精华

无 review 讨论。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险较低，主要修改补丁文件，且没有引入新的配置或破坏性变化。但需确保补丁与 sglang 版本兼容。
- 影响：影响范围限于 sglang 补丁文件，主要影响使用 mooncake offload 的用户。修复了潜在的数据传输错误和死锁问题。
- 风险标记：补丁文件改动 , 与 sglang 版本耦合

# 关联脉络

- PR #1949 [docker] fix sglang pd prefill abort request: 同为修复 sglang 补丁的 PR
- PR #1945 [docker] upgrade to sglang v0.5.12.post1: 本次修复针对升级后的版本