aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/init/postinit.c
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2021-03-26 10:52:14 -0700
committerAndres Freund <andres@anarazel.de>2021-08-06 19:10:32 -0700
commita1bb3d5dbe6a66ae73d7805a63b951793b5d55df (patch)
tree81fc1536fc53dab68721c0ff6acafd0c7f07db60 /src/backend/utils/init/postinit.c
parentfa91d4c91f28f4819dc54f93adbd413a685e366a (diff)
downloadpostgresql-a1bb3d5dbe6a66ae73d7805a63b951793b5d55df.tar.gz
postgresql-a1bb3d5dbe6a66ae73d7805a63b951793b5d55df.zip
Schedule ShutdownXLOG() in single user mode using before_shmem_exit().
Previously on_shmem_exit() was used. The upcoming shared memory stats patch uses DSM segments to store stats, which can not be used after the dsm_backend_shutdown() call in shmem_exit(). There does not seem to be any reason to do ShutdownXLOG() via on_shmem_exit(), so change it. Author: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20210405092914.mmxqe7j56lsjfsej@alap3.anarazel.de Discussion: https://postgr.es/m/20210803023612.iziacxk5syn2r4ut@alap3.anarazel.de
Diffstat (limited to 'src/backend/utils/init/postinit.c')
-rw-r--r--src/backend/utils/init/postinit.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index e37b86494e1..87dc060b201 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -638,7 +638,11 @@ InitPostgres(const char *in_dbname, Oid dboid, const char *username,
/* Reset CurrentResourceOwner to nothing for the moment */
CurrentResourceOwner = NULL;
- on_shmem_exit(ShutdownXLOG, 0);
+ /*
+ * Use before_shmem_exit() so that ShutdownXLOG() can rely on DSM
+ * segments etc to work (which in turn is required for pgstats).
+ */
+ before_shmem_exit(ShutdownXLOG, 0);
}
/*