Repository navigation
Fix disaggregated prefill cache leak after abort - #36926
kflansburg wants to merge 2 commits into
Conversation
| if not owns_resources: | ||
| return False | ||
|
|
||
| req.disagg_kv_sender.abort() |
There was a problem hiding this comment.
Normal abort cleanup now works, but abort() can still raise before metadata, HiCache, KV, and Mamba release. It may be worth making transport notification best effort so every local cleanup step still completes.
|
The cleanup closes the reproduced ownership gap, but it and PR |
|
After #36958, req.kv is non-optional, so both req.kv is not None checks are now always true. Please rebase and key KV ownership on req.is_holding_kv (plus the separate Mamba/metadata ownership), while keeping transport abort best-effort so it cannot bypass local cleanup. |
65b1f67 to
9cb30a4
Compare
|
Rebased onto current |
|
/tag-and-rerun-ci |
|
covered in #36988, thanks |
Motivation
An aborted disaggregated prefill request can lose scheduler ownership when an overlapped middle or final chunk result arrives after AbortReq or bootstrap failure. The result path currently drops aborted middle chunks and does not check final chunks before caching and enqueueing them.
For hybrid Mamba models this leaves one request allocation unaccounted for: one full prefill chunk plus the request Mamba state and overlap buffers. The observed production invariant failure was a 16,384-token full-KV deficit and three missing Mamba states.
Modifications
Accuracy Tests
No model-output behavior changes for successful requests.
GPU reproduction on the original GLM-5.3-Flash B300 deployment is still pending.
Speed Tests and Profiling
Not applicable. The new checks only run for completed disaggregated-prefill results; no model-forward path changes.
Checklist
CI States
Latest PR Test (Base): ❌ Run #33272687086
Latest PR Test (Extra): ❌ Run #33272686834
Latest PR Test (AMD ROCm 7.2): ⏳ Run #33272687029