Port the decode->prefill half of upstream sgl-project/sglang #27372 (the worker skip-Failed guard half landed in cb1a03f0a). In multi-prefill/multi-decode PD, a decode-initiated abort frees the decode's KV pages back to the allocator, but the prefill never learns of it (request_status is per-process), so the prefill keeps RDMA-writing the remaining chunks into pages the decode may have reallocated to a different live request -> KV corruption. The already-ported worker guard is a no-op here because nothing sets the prefill room to Failed. Now the decode receiver sends a 4-field b"ABORT" notification to every prefill peer (on abort() and on the poll() WaitingForInput timeout, at most once); the prefill marks the room Failed (so the worker guard fires) and replies b"ABORT_ACK". The ABORT branch is handled before the unconditional waiting_req_bytes[3] decode in bootstrap_thread (a 4-field ABORT would otherwise crash the else branch), and ABORT_ACK before the 3-tuple unpack in the decode thread. De-entangled from the staging/tracing infra this branch lacks. Component-tested (test_mooncake_abort_protocol.py: format, send-once guard, abort wiring, ZMQ round-trip). Cross-process corruption-window closure to be verified by the multi-P/D PD harness. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Registered Tests
Tests under this directory are auto-discovered by run_suite.py via CI registration decorators.
Where Should I Put My New Test?
No server / engine launch required
| What you're testing | Directory | Requires |
|---|---|---|
| Component logic in isolation (cache, scheduler, config, parser, etc.) | unit/<module>/ |
CPU or GPU |
| CUDA kernel correctness | kernels/ |
GPU |
Server / engine launch required (E2E)
| What you're testing | Directory | Requires |
|---|---|---|
| Model inference correctness | models/, 4-gpu-models/, 8-gpu-models/ |
GPU |
| Feature-specific (OpenAI API, LoRA, speculative, distributed, VLM, etc.) | openai_server/, lora/, spec/, distributed/, ... |
GPU |
| Benchmarks (performance, accuracy, stress) | benchmark/ |
GPU |
| Platform-specific | amd/, ascend/ |
Vendor GPU |
See unit/README.md for unit test conventions.