On 6/2/17 15:41, Tom Lane wrote: > It's certainly plausible that we could have the latch code just ignore > WL_POSTMASTER_DEATH if not IsUnderPostmaster. I think that the original > reasoning for not doing that was that the calling code should know which > environment it's in, and not pass an unimplementable wait-exit reason; > so silently ignoring the bit could mask a bug. Perhaps that argument is > no longer attractive. Alternatively, we could fix the relevant call sites > to do "(IsUnderPostmaster ? WL_POSTMASTER_DEATH : 0)", and keep the strict > behavior for the majority of call sites.
There are a lot of those call sites. (And a lot of duplicate code for what to do if postmaster death actually happens.) I doubt we want to check them all. The attached patch fixes the reported issue for me. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From 8f0e1c844aabd4a0e3c245180d9019cbf65b1601 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <pete...@gmx.net> Date: Fri, 2 Jun 2017 23:02:13 -0400 Subject: [PATCH] Ignore WL_POSTMASTER_DEATH latch event in single user mode Otherwise code that uses this will abort with an assertion failure, because postmaster_alive_fds are not initialized. Reported-by: tushar <tushar.ah...@enterprisedb.com> --- src/backend/storage/ipc/latch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c index 53e6bf2477..55959de91f 100644 --- a/src/backend/storage/ipc/latch.c +++ b/src/backend/storage/ipc/latch.c @@ -370,7 +370,7 @@ WaitLatchOrSocket(volatile Latch *latch, int wakeEvents, pgsocket sock, AddWaitEventToSet(set, WL_LATCH_SET, PGINVALID_SOCKET, (Latch *) latch, NULL); - if (wakeEvents & WL_POSTMASTER_DEATH) + if (wakeEvents & WL_POSTMASTER_DEATH && IsUnderPostmaster) AddWaitEventToSet(set, WL_POSTMASTER_DEATH, PGINVALID_SOCKET, NULL, NULL); -- 2.13.0
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers