aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2012-08-10 14:49:03 +0200
committerMagnus Hagander <magnus@hagander.net>2012-08-10 14:51:57 +0200
commit63e719ec511f99eeb4f237366ef633cd264e40da (patch)
tree573abaf3ef7d9141840c1a56de98221f28f96ca0
parent86ece4bff648364ece3cf03c0e7bfbe9fb3fc8cd (diff)
downloadpostgresql-63e719ec511f99eeb4f237366ef633cd264e40da.tar.gz
postgresql-63e719ec511f99eeb4f237366ef633cd264e40da.zip
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.
-rw-r--r--doc/src/sgml/config.sgml16
-rw-r--r--src/backend/postmaster/postmaster.c7
2 files changed, 16 insertions, 7 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 631f302d7f2..31ada47b287 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -2114,12 +2114,16 @@ SET ENABLE_SEQSCAN TO OFF;
</indexterm>
<listitem>
<para>
- Specifies the maximum number of concurrent connections from standby
- servers or streaming base backup clients (i.e., the maximum number of
- simultaneously running WAL sender
- processes). The default is zero. This parameter can only be set at
- server start. <varname>wal_level</> must be set to <literal>archive</>
- or <literal>hot_standby</> to allow connections from standby servers.
+ Specifies the maximum number of concurrent connections from
+ standby servers or streaming base backup clients (i.e., the
+ maximum number of simultaneously running WAL sender
+ processes). The default is zero, meaning replication is
+ disabled. WAL sender processes count towards the total number
+ of connections, so the parameter cannot be set higher than
+ <xref linkend="guc-max-connections">. This parameter can only
+ be set at server start. <varname>wal_level</> must be set
+ to <literal>archive</> or <literal>hot_standby</> to allow
+ connections from standby servers.
</para>
</listitem>
</varlistentry>
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 94e22da41e1..3a4cef34486 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -759,11 +759,16 @@ PostmasterMain(int argc, char *argv[])
/*
* Check for invalid combinations of GUC settings.
*/
- if (ReservedBackends >= MaxBackends)
+ if (ReservedBackends >= MaxConnections)
{
write_stderr("%s: superuser_reserved_connections must be less than max_connections\n", progname);
ExitPostmaster(1);
}
+ if (max_wal_senders >= MaxConnections)
+ {
+ write_stderr("%s: max_wal_senders must be less than max_connections\n", progname);
+ ExitPostmaster(1);
+ }
if (XLogArchiveMode && wal_level == WAL_LEVEL_MINIMAL)
ereport(ERROR,
(errmsg("WAL archival (archive_mode=on) requires wal_level \"archive\" or \"hot_standby\"")));