From 39170ec191c57d1c07cf134242ba159ab5d59c40 Mon Sep 17 00:00:00 2001 From: Yuli Khodorkovskiy Date: Tue, 14 May 2019 13:29:56 -0400 Subject: [PATCH] Initialize shared memory before calling SysLogger_Start() Moving SysLogger_Start() in 57431a911d3a650451d198846ad3194900666152 causes the assertion `Assert(UsedShmemSegAddr != NULL);` in `PGSharedMemoryNoReAttach()` to fail when using EXEC_BACKEND and logging_collector. Since shared memory is not yet initialized before SysLogger_Start() is called, move the shared memory setup before the syslog worker is launched. --- src/backend/postmaster/postmaster.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 71ffb1345b..f74e3761de 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -1029,6 +1029,11 @@ PostmasterMain(int argc, char *argv[]) errmsg("could not remove file \"%s\": %m", LOG_METAINFO_DATAFILE))); + /* + * Set up shared memory and semaphores. + */ + reset_shared(PostPortNumber); + /* * If enabled, start up syslogger collection subprocess */ @@ -1232,11 +1237,6 @@ PostmasterMain(int argc, char *argv[]) if (!listen_addr_saved) AddToDataDirLockFile(LOCK_FILE_LINE_LISTEN_ADDR, ""); - /* - * Set up shared memory and semaphores. - */ - reset_shared(PostPortNumber); - /* * Estimate number of openable files. This must happen after setting up * semaphores, because on some platforms semaphores count as open files. -- 2.19.0