Skip to content

Fix and validate io_uring dispatcher before production use #76

Description

@AlexJuca

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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions