On Fri, Feb 8, 2013 at 06:46:29AM +0000, jackie.qq.zhang@gmail.com wrote:
> The following bug has been logged on the website:
>
> Bug reference: 7858
> Logged by: Jackie Zhang
> Email address: jackie.qq.zhang@gmail.com
> PostgreSQL version: 9.1.4
> Operating system: Ubuntu
> Description:
>
> Hi,
>
> The log message of the sanity check for "superuser_reserved_connections" in
> PostmasterMain() is not accurate. See the following code snippet:
>
> /*src/backend/postmaster/postmaster.c*/
> 730 /*
> 731 * Check for invalid combinations of GUC settings.
> 732 */
> 733 if (ReservedBackends >= MaxBackends)
> 734 {
> 735 write_stderr("%s: superuser_reserved_connections must
> be less than max_connections\n", progname);
> 736 ExitPostmaster(1);
> 737 }
>
> The problem is that "MaxBackends" is calculated by both
> "autovacuum_max_workers" and "max_connections". See assign_maxconnections()
> and assign_autovacuum_max_workers() in src/backend/utils/misc/guc.c.
>
> The log message should inform both the two configuration parameters instead
> of only one -- the root cause could be the oversized
> "autovacuum_max_workers".
The calculation, ReservedBackends >= MaxBackends, was corrected in
Postgres 9.3 with this commit:
commit b3055ab4fb5839a872bfe354b2b5ac31e6903ed6
Author: Magnus Hagander <magnus@hagander.net>
Date: Fri Aug 10 14:49:03 2012 +0200
Fix upper limit of superuser_reserved_connections, add limit for wal_senders
Should be limited to the maximum number of connections excluding
autovacuum workers, not including.
Add similar check for max_wal_senders, which should never be higher than
max_connections.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +