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

Reply via email to