Re: kevent latch paths don't handle postmaster death well
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-10-14T22:10:28Z
Lists: pgsql-hackers
Attachments
- 0001-Make-WL_POSTMASTER_DEATH-level-triggered-on-kqueue-b.patch (text/x-patch) patch 0001
On Thu, Oct 15, 2020 at 8:40 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > 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. 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.
Commits
-
Handle EACCES errors from kevent() better.
- 47522ee00ddb 13.1 landed
- 70516a178ad0 14.0 landed
-
Make WL_POSTMASTER_DEATH level-triggered on kqueue builds.
- e0950135ae5d 13.1 landed
- b94109ce375b 14.0 landed