Handle EACCES errors from kevent() better.
authorThomas Munro <tmunro@postgresql.org>
Thu, 15 Oct 2020 05:23:30 +0000 (18:23 +1300)
committerThomas Munro <tmunro@postgresql.org>
Thu, 15 Oct 2020 05:34:21 +0000 (18:34 +1300)
commit70516a178ad0fc54d0f0d2a88175af3e1e92f83f
tree35ab31fa67c254366bedfa7ff95a4847a0f3badb
parentd7eb52d7181d83cf2363570f7a205b8eb1008dbc
Handle EACCES errors from kevent() better.

While registering for postmaster exit events, we have to handle a couple
of edge cases where the postmaster is already gone.  Commit 815c2f09
missed one: EACCES must surely imply that PostmasterPid no longer
belongs to our postmaster process (or alternatively an unexpected
permissions model has been imposed on us).  Like ESRCH, this should be
treated as a WL_POSTMASTER_DEATH event, rather than being raised with
ereport().

No known problems reported in the wild.  Per code review from Tom Lane.
Back-patch to 13.

Reported-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/3624029.1602701929%40sss.pgh.pa.us
src/backend/storage/ipc/latch.c