Re: kevent latch paths don't handle postmaster death well

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-10-14T22:18:53Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes:
> On Thu, Oct 15, 2020 at 8:40 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Seems like having that be per-WaitEventSet state is also not a great
>> idea --- if we detect PM death while waiting on one WES, and then
>> wait on another one, it won't work.  A plain process-wide static
>> variable would be a better way I bet.

> I don't think that's a problem -- the kernel will report the event to
> each interested kqueue object.  The attached fixes the problem for me.

Oh, OK.  I confirm this makes the kqueue path work like the EPOLL and POLL
paths.  (I can't test the WIN32 path.)

			regards, tom lane



Commits

  1. Handle EACCES errors from kevent() better.

  2. Make WL_POSTMASTER_DEATH level-triggered on kqueue builds.