Re: io_uring: Fix danger of completion getting reused before being read

Kirill Reshke <reshkekirill@gmail.com>

From: Kirill Reshke <reshkekirill@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org
Date: 2026-01-15T18:53:56Z
Lists: pgsql-hackers
On Thu, 15 Jan 2026 at 20:38, Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> I privately got a report about a bug in method_io_uring.c:
>
> We are calling io_uring_cqe_seen(..., cqe) before reading cqe->res. That
> allows the completion to be reused, which in turn could lead to cqe->res being
> overwritten. The window for that is very narrow and the likelihood of it
> happening is very low, as we should never actually utilize all CQEs, but the
> consequences would be bad.
>
> I plan to push the fix soon-ish.
>
> Greetings,
>
> Andres Freund

I see this is already committed as 807764990. Just pointing in case
somebody wants to review.


-- 
Best regards,
Kirill Reshke



Commits

  1. aio: io_uring: Fix danger of completion getting reused before being read