Set max_safe_fds whenever we create shared memory and semaphores.
Tom Lane <tgl@sss.pgh.pa.us>
Set max_safe_fds whenever we create shared memory and semaphores. Formerly we skipped this in bootstrap/check mode and in single-user mode. That's bad in check mode because it may allow accepting a value of max_connections that doesn't actually work: on platforms where semaphores consume file descriptors, there may not be enough free FDs left over to satisfy fd.c, causing postmaster start to fail. It's also not great in single-user mode, because fd.c will operate with just the minimum allowable value of max_safe_fds, resulting in excess file open/close overhead if anything moderately complicated is done in single-user mode. (There may be some penalty for bootstrap mode too, though probably not much.) Discussion: https://postgr.es/m/2081982.1734393311@sss.pgh.pa.us
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/bootstrap/bootstrap.c | modified | +6 −0 |
| src/backend/tcop/postgres.c | modified | +10 −0 |
Discussion
- Missing initialization steps in --check and --single modes 2 messages · 2024-12-16 → 2024-12-17