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: Andres Freund <andres@anarazel.de>, Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-10-15T21:40:51Z
Lists: pgsql-hackers
Thomas Munro <thomas.munro@gmail.com> writes:
> I couldn't resist digging further into the Apple sources to figure out
> what was going on there, and I realised that the code path I was
> looking at can only report EACCES if you asked for NOTE_EXITSTATUS,
> which appears to be an Apple extension to the original FreeBSD kqueue
> system designed to let you receive the exit status of the monitored
> process.  That is indeed much more privileged information, and it's
> only allowed for your own children.

Ah.

> So it's possible that commit
> 70516a17 was a waste of electrons, but I don't think it can hurt;

Yeah, I'm not inclined to revert it.  If we did get that errno,
it'd be hard to interpret it in any way that didn't involve the
postmaster being gone.

			regards, tom lane



Commits

  1. Handle EACCES errors from kevent() better.

  2. Make WL_POSTMASTER_DEATH level-triggered on kqueue builds.