remove check hooks for GUCs that contribute to MaxBackends
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: pgsql-hackers@postgresql.org
Date: 2024-06-19T19:04:58Z
Lists: pgsql-hackers
Attachments
While working on an idea from another thread [0], I noticed that each of max_connections, max_worker_process, max_autovacuum_workers, and max_wal_senders have a check hook that verifies the sum of those GUCs does not exceed a certain value. Then, in InitializeMaxBackends(), we do the same check once more. Not only do the check hooks seem redundant, but I think they might sometimes be inaccurate since some values might not yet be initialized. Furthermore, the error message is not exactly the most descriptive: $ pg_ctl -D . start -o "-c max_connections=262100 -c max_wal_senders=10000" FATAL: invalid value for parameter "max_wal_senders": 10000 The attached patch removes these hooks and enhances the error message to look like this: FATAL: too many backends configured DETAIL: "max_connections" (262100) plus "autovacuum_max_workers" (3) plus "max_worker_processes" (8) plus "max_wal_senders" (10000) must be less than 262142. The downside of this change is that server startup progresses a little further before it fails, but that might not be too concerning given this _should_ be a relatively rare occurrence. Thoughts? [0] https://postgr.es/m/20240618213331.ef2spg3nasksisbi%40awork3.anarazel.de -- nathan
Commits
-
Remove check hooks for GUCs that contribute to MaxBackends.
- 0b1fe1413ea8 18.0 landed