问题(mock 保真度,非生产 bug)
_prepares_since_commit 计数器在 EXTEND 步递增但不 commit,导致进入 decode 后首次 commit 恒见 n>1,永远走 n-1; return 不 shrink 分支,verify 槽回收被跳过。
证据(file:line 已核实)
EXTEND 步 prepare 递增计数器:node_scheduler.py:472 写 write_set,memory.py:109 _prepares_since_commit += 1。
EXTEND 步 process 不 commit:node_scheduler.py:539-547
if computed_before < prompt_len:
req.num_computed_tokens = min(prompt_len, computed_before + scheduled_n)
...
continue # ← 不调用 commit_write_extent
decode 步 commit 见 n≥2 跳过:memory.py:62-65
n = self._prepares_since_commit.get(req_id, 0)
if n > 1:
self._prepares_since_commit[req_id] = n - 1
return # ← 永不 shrink
任何经过 EXTEND 的 req,_prepares_since_commit 至少为 1;decode prepare 再 +1 → commit 时 n≥2 恒成立 → 永远不执行 l0_token_end = min(...)。
后果(仅限 InMemoryAgent)
spec verify 拒绝部分 draft(A < max_accept)时,l0_token_end 应从预留 end+max_accept 回收到 end+A,但 shrink 被跳过 → probe_local 对同 req 报告过长的 L0 前缀(unaccepted verify 槽未回收),直到 on_request_finished 才清。
生产用真 agent 不受影响,但 mock 不再忠实模拟「verify 槽回收」,可能掩盖真池的同类 bug(如 #44 的反向溢出)。
解决方案
二选一:
- EXTEND 步 process 后也 commit(或 commit 在 EXTEND 分支显式调用一次)。
- D10 计数只对 generate/verify 步递增,EXTEND 不计入「待 commit」序列。
待核实生产 agent 是否有等价问题。
参考
- D10 守卫对齐 vLLM V2 device 侧接受长度会计(host
min 不得压后续 prepare 已抬高的预留)。本项无外部参考实现,属内部 mock 逻辑缺陷。
问题(mock 保真度,非生产 bug)
_prepares_since_commit计数器在 EXTEND 步递增但不 commit,导致进入 decode 后首次 commit 恒见n>1,永远走n-1; return不 shrink 分支,verify 槽回收被跳过。证据(file:line 已核实)
EXTEND 步 prepare 递增计数器:
node_scheduler.py:472写write_set,memory.py:109_prepares_since_commit += 1。EXTEND 步 process 不 commit:
node_scheduler.py:539-547decode 步 commit 见 n≥2 跳过:
memory.py:62-65任何经过 EXTEND 的 req,
_prepares_since_commit至少为 1;decode prepare 再 +1 → commit 时 n≥2 恒成立 → 永远不执行l0_token_end = min(...)。后果(仅限 InMemoryAgent)
spec verify 拒绝部分 draft(A < max_accept)时,
l0_token_end应从预留end+max_accept回收到end+A,但 shrink 被跳过 →probe_local对同 req 报告过长的 L0 前缀(unaccepted verify 槽未回收),直到on_request_finished才清。生产用真 agent 不受影响,但 mock 不再忠实模拟「verify 槽回收」,可能掩盖真池的同类 bug(如 #44 的反向溢出)。
解决方案
二选一:
待核实生产 agent 是否有等价问题。
参考
min不得压后续 prepare 已抬高的预留)。本项无外部参考实现,属内部 mock 逻辑缺陷。