Commit 28e362ea authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-25760: Resubmit IO job on -EAGAIN from io_uring

The server still may abort if there is no enough free space in the
ring buffer to resubmit the IO job, but the behavior is equal to
the failure of os_aio() -> submit_io().
parent 74a0a987
......@@ -162,6 +162,13 @@ class aio_uring final : public tpool::aio
io_uring_cqe_seen(&aio->uring_, cqe);
if (res == -EAGAIN) {
// If we need to resubmit the IO operation, but the ring is full,
// then just go the same path as for any other error codes.
if (!aio->submit_io(iocb))
continue;
}
iocb->m_internal_task.m_func= iocb->m_callback;
iocb->m_internal_task.m_arg= iocb;
iocb->m_internal_task.m_group= iocb->m_group;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment