diff options
-rw-r--r-- | src/backend/bootstrap/bootstrap.c | 6 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 10 |
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. */ |