Context
The Linux io_uring dispatcher is intended as a high-performance backend, but it needs correctness validation before production use. The current implementation appears incomplete compared with the epoll/kqueue paths and should not be treated as production-ready without dedicated tests.
Relevant code:
src/io/event_dispatcher_io_uring.c
src/server.c (use-io-uring selection)
server.conf
Scope
- Verify the io_uring server path submits initial accept/read operations correctly.
- Ensure client lifecycle is safe when completions arrive after close/free.
- Handle read, write, accept, timer, cancellation, and shutdown paths explicitly.
- Add tests or CI coverage that can run the server with
use-io-uring true on Linux when liburing is available.
- Decide whether io_uring should be disabled by default until validated.
Acceptance criteria
- io_uring mode accepts connections and processes normal command traffic reliably.
- io_uring mode handles disconnects, malformed frames, and shutdown without use-after-free or leaks.
- CI or a documented Linux validation script exercises io_uring behavior.
- Production docs clearly state support level and requirements.
Context
The Linux io_uring dispatcher is intended as a high-performance backend, but it needs correctness validation before production use. The current implementation appears incomplete compared with the epoll/kqueue paths and should not be treated as production-ready without dedicated tests.
Relevant code:
src/io/event_dispatcher_io_uring.csrc/server.c(use-io-uringselection)server.confScope
use-io-uring trueon Linux when liburing is available.Acceptance criteria