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-14T19:40:31Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes:
> The process exit event is like an 'edge', not a 'level'... hmm.  It
> might be enough to set report_postmaster_not_running = true the first
> time it tells us so if we try to wait again we'll treat it like a
> level.  I will look into it later today.

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.

			regards, tom lane



Commits

  1. Handle EACCES errors from kevent() better.

  2. Make WL_POSTMASTER_DEATH level-triggered on kqueue builds.