Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring
Lætitia Avrot <laetitia.avrot@gmail.com>
From: Lætitia AVROT <laetitia.avrot@gmail.com>
To: pgsql-hackers@lists.postgresql.org
Cc: Lucas DRAESCHER <git@draescher.fr>
Date: 2026-06-05T15:17:16Z
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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix LATERAL references in GRAPH_TABLE with multi-label pattern
- 4cb2a9863d89 19 (unreleased) cited