aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/bootstrap/bootstrap.c6
-rw-r--r--src/backend/tcop/postgres.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index a5217773ffc..f3a7a007f77 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -335,6 +335,12 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
CreateSharedMemoryAndSemaphores();
/*
+ * Estimate number of openable files. This is essential too in --check
+ * mode, because on some platforms semaphores count as open files.
+ */
+ set_max_safe_fds();
+
+ /*
* XXX: It might make sense to move this into its own function at some
* point. Right now it seems like it'd cause more code duplication than
* it's worth.
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 3ce088f0bad..85902788181 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -4099,9 +4099,19 @@ PostgresSingleUserMain(int argc, char *argv[],
*/
InitializeWalConsistencyChecking();
+ /*
+ * Create shared memory etc. (Nothing's really "shared" in single-user
+ * mode, but we must have these data structures anyway.)
+ */
CreateSharedMemoryAndSemaphores();
/*
+ * Estimate number of openable files. This must happen after setting up
+ * semaphores, because on some platforms semaphores count as open files.
+ */
+ set_max_safe_fds();
+
+ /*
* Remember stand-alone backend startup time,roughly at the same point
* during startup that postmaster does so.
*/