diff options
-rw-r--r-- | src/backend/storage/ipc/latch.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c index 046ca5c6c7e..d4c6c65baa3 100644 --- a/src/backend/storage/ipc/latch.c +++ b/src/backend/storage/ipc/latch.c @@ -1094,8 +1094,17 @@ WaitEventAdjustKqueue(WaitEventSet *set, WaitEvent *event, int old_events) errmsg("%s failed: %m", "kevent()"))); } - else if (event->events == WL_POSTMASTER_DEATH && PostmasterPid != getppid()) + else if (event->events == WL_POSTMASTER_DEATH && + PostmasterPid != getppid() && + !PostmasterIsAlive()) + { + /* + * The extra PostmasterIsAliveInternal() check prevents false alarms on + * systems that give a different value for getppid() while being traced + * by a debugger. + */ set->report_postmaster_not_running = true; + } } #endif |