Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring - Mailing list pgsql-hackers

From Laetitia Avrot
Subject Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
Date
Msg-id CAB_COdgSDb8yFxUkNhUXmY8xhJgUMBn5Rt-W1h6RNH+WXZWafQ@mail.gmail.com
Whole thread
In response to Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring  (Lucas DRAESCHER <git@draescher.fr>)
Responses Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
List pgsql-hackers

Hi Lucas,

I reviewed v3 on Debian, kernel 6.17.13, liburing 2.14.

I reproduced the bug on unpatched master: fd count doubles from 142 to 284 after killing a backend. With the patch applied, the count stays stable. The fix works.

Build was clean, no new warnings. All 245 regression tests pass, make check-world passes, and all 39 TAP tests pass.

The code is clean and follows PostgreSQL conventions. The null guard before registering the callback is correct, the wrapper satisfies the on_shmem_exit() signature, and setting pgaio_uring_contexts to NULL after cleanup prevents a double-free.

One note for the committer: on_shmem_exit() callbacks fire in LIFO order, so this callback runs before anything registered earlier in AioShmemInit(), which is the safe direction. Worth confirming that no earlier-registered callback could invalidate pgaio_uring_contexts before this one runs.

On the v1 vs v2 design question: I favour v2. The Table AM precedent suggests PostgreSQL prefers clean interface boundaries even with a single implementor, and Andres Freund has been explicit about this in the past.

Marking as Ready for Committer.

Regards,

Lætitia


Le ven. 5 juin 2026 à 17:15, Lucas DRAESCHER <git@draescher.fr> a écrit :
I have attached v3 which rebases v2 on top of master.

v1 still applies cleanly.

Regards,

Lucas

pgsql-hackers by date:

Previous
From: Ilmar Yunusov
Date:
Subject: Re: Remove inner joins based on foreign keys
Next
From: Lætitia AVROT
Date:
Subject: Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring