#50984 [Bugfix][Mooncake] Report failed remote KV loads to the scheduler
原始 PR · 作者 BruceLoveDecimal · 合并时间 2026-09-14 17:55
Mooncake 解码侧上报失败 KV 加载,解除请求永久滞留
值得精读,尤其是负责 P/D 分离、KV 连接器与调度器失败策略的工程师。重点关注三个设计决策:(1) 把「失败」也写入 `finished_recving_reqs`,用同一出口解除 `WAITING_FOR_REMOTE_KVS` 等待,这是最小侵入的解法;(2) 用 `PullReqMeta.failed` + `queue.Queue` 解决多 P 回报顺序与跨线程传递,而非引入锁; (3) 对空 `local_block_ids` 的显式跳过,避免触发调度器 `assert req_id in self.requests`,这是只有在理解 `notify_kv_transfer_request_rejected` 路径后才会想到的边界。阅读时应把它与 NIXL 的 `_handle_failed_transfer()` 对照看,并注意本 PR 未新增单测:如果需要在此基础上改动,建议先为 `_handle_failed_recv` 的幂等、空 block 与 `process_pulling_result` 的 `failed` 分支补测试。