Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring

From: Lætitia AVROT <laetitia(dot)avrot(at)gmail(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Cc: Lucas DRAESCHER <git(at)draescher(dot)fr>
Subject: Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
Date: 2026-06-05 15:17:16
Message-ID: 178067263688.594055.1686317716173563895.pgcf@coridan.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

The following review has been posted through the commitfest application:
make installcheck-world: tested, passed
Implements feature: not tested
Spec compliant: not tested
Documentation: not tested

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jacob Champion 2026-06-05 15:20:44 Re: Prevent remote libpq notices from being sent to clients
Previous Message Laetitia Avrot 2026-06-05 15:16:21 Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring