FATAL: Exception during startup, aborting: std::invalid_argument (find_candidate(): failed to find candidate io_uring)
Author: mykaulCreated Aug 2, 2026Updated Aug 18, 2026
Apparently, under a loaded machine, detect_io_uring() may fail with -ENOMEM/-EAGAIN and there's no retry mechanism.
This leads to the following sequence of events:
- Call 1 (candidates list) → io_uring probe fails transiently → "io_uring" not added to candidates.
- Call 2 (default_backend()) → probes again, this time succeeds → returns "io_uring" as the chosen default name.
- selection_value constructor does find_candidate("io_uring") against the candidates list from call 1, which doesn't have it → throws std::invalid_argument("find_candidate(): failed to find candidate io_uring") → uncaught at startup → FATAL: Exception during startup, aborting → process exits before ever acquiring a host_id.
Seen in https://github.com/scylladb/scylladb/pull/30955#issuecomment-5136374972 - a completely unrelated PR, the 3rd node failed to be added to the ScyllaDB Cluster with the above error.
Source: scylladb/seastar