Repository navigation
knowledge(vllm-omni): 1 change(s) from refine #354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| --- | ||
| title: "Scheduler:duplex 流式 context overflow 规则" | ||
| created: 2026-10-12 | ||
| updated: 2026-10-12 | ||
| type: rule | ||
| tags: [vllm-omni, components, scheduler] | ||
| sources: ["PR #8683"] | ||
| --- | ||
|
|
||
| # Scheduler:duplex 流式 context overflow 规则 | ||
|
|
||
| ## VLLM-OMNI-PR8683-DUPLEX-OVERFLOW-FENCE — 流式 context overflow 必须走 duplex 失败路径,overflow fence 只能由 FIFO abort 释放 | ||
|
|
||
| - 触发:duplex/PersonaPlex streaming 会话的 prompt 达到或超过 `max_model_len`;或修改 `vllm_omni/core/sched/omni_ar_scheduler.py` 的 streaming context overflow 路径(`_overflowed_streaming_requests` fence、`release_overflowed_requests`)、`vllm_omni/engine/stage_engine_core_proc.py` 的 eager/FIFO abort 双队列处理,或 `vllm_omni/engine/duplex_orchestrator.py` 的终端错误路由。 | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
For changes limited to AGENTS.md reference: AGENTS.md:L12-L17 Useful? React with 👍 / 👎. |
||
| - 强制:终端错误(如 context overflow)必须经既有 duplex failure/cleanup 路由发布,保留 resident-session 与 per-turn 两种既有失败策略——per-turn 失败后同一 session 保持可用、后续 turn 仍可成功(Qwen session-runner 回归),且 stage replica 不再因 overflow 被杀。已 overflow 的 request 必须挂 admission fence:迟到 append 拒绝并打 debug 日志,直到 stage engine 从有序 input queue 处理完 owner 的 ABORT;eager abort 保持 fence,FIFO 侧清理释放 fence 并允许刻意的同 request-ID 复用。overflow 输出为 `FinishReason.ERROR`、空 `new_token_ids`,且 `is_segment_finished is False`(不是 segment boundary)。 | ||
| - 禁止:用普通 request `ErrorMessage` 发布 overflow 终端错误——duplex 消费者只收 session 事件,绕过 duplex 失败/清理路径会让 stage 0 被杀、后续会话报 `stage 0 has no live replica`;eager abort drain 完就释放 fence(eager abort 可早于旧 append 的 FIFO drain 完成);维护无界 request-ID tombstone 阻止复用;放任迟到 append 重建已被移除的 overflowed request(症状:`PersonaPlex scheduler prompt reservation mismatch: reserved=1, prepared=90`);把 overflow error 当 segment boundary。 | ||
| - 验收:覆盖 overflow 后迟到 append 在 eager abort 之后仍被拒;eager/FIFO 发布交叠(另一请求保持 running、socket 线程在 eager abort 发布后 FIFO 拷贝前暂停)时 overflowed request 不被重建,而 FIFO 先于 drain 完成发布的反例保持原正确行为;FIFO 最终清理后 fence 释放、同 ID replacement 可重新入队;未实现 overflow fence 的 scheduler 不回归;plugin error policy;同一 session 内失败 response 后成功的 turn。^[PR #8683] | ||
|
|
||
| <!-- kb:rule status=active since=v0.30.0 --> | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Linking this page only from
_index.mdmakes the new rule unreachable in the required review flow:direct_review_plan()for the referenced PersonaPlex overflow change returns the schedulerrules.mdquick map, which contains no overflow entry, whileKnowledgeDocs.related()deliberately excludestype: rulepages and returns no related document. Because Direct then stops index navigation, reviewers never receive this rule; add it to the schedulerrules.mdDirect map rather than only the index.AGENTS.md reference: knowledge/AGENTS.md:L16-L16
Useful? React with 👍 / 👎.