From 1bc1f06337bfffc57d4ac25147a7b981ef89bcbf Mon Sep 17 00:00:00 2001 From: Shenhao Wang Date: Fri, 18 Sep 2020 18:35:54 +0800 Subject: [PATCH] Make MaxBackends available in _PG_init --- src/backend/postmaster/postmaster.c | 17 +++++++---------- src/backend/utils/init/postinit.c | 4 +--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 959e3b8873..8da50cb2a1 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -989,13 +989,16 @@ PostmasterMain(int argc, char *argv[]) LocalProcessControlFile(false); /* - * Register the apply launcher. Since it registers a background worker, - * it needs to be called before InitializeMaxBackends(), and it's probably - * a good idea to call it before any modules had chance to take the - * background worker slots. + * Register the apply launcher. It's probably a good idea to call it + * before any modules had chance to take the background worker slots. */ ApplyLauncherRegister(); + /* + * Calculate MaxBackends. + */ + InitializeMaxBackends(); + /* * process any libraries that should be preloaded at postmaster start */ @@ -1012,12 +1015,6 @@ PostmasterMain(int argc, char *argv[]) } #endif - /* - * Now that loadable modules have had their chance to register background - * workers, calculate MaxBackends. - */ - InitializeMaxBackends(); - /* * Set up shared memory and semaphores. */ diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index d4ab4c7e23..06d813f76b 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -513,9 +513,7 @@ pg_split_opts(char **argv, int *argcp, const char *optstr) /* * Initialize MaxBackends value from config options. * - * This must be called after modules have had the chance to register background - * workers in shared_preload_libraries, and before shared memory size is - * determined. + * This must be called before shared memory size is determined. * * Note that in EXEC_BACKEND environment, the value is passed down from * postmaster to subprocesses via BackendParameters in SubPostmasterMain; only -- 2.21.0