mirror of
https://github.com/postgres/postgres.git
synced 2025-12-07 12:02:30 +03:00
Second try at fixing tcp_keepalives_idle option on Solaris.
Buildfarm evidence shows that TCP_KEEPALIVE_THRESHOLD doesn't exist
after all on Solaris < 11. This means we need to take positive action to
prevent the TCP_KEEPALIVE code path from being taken on that platform.
I've chosen to limit it with "&& defined(__darwin__)", since it's unclear
that anyone else would follow Apple's precedent of spelling the symbol
that way.
Also, follow a suggestion from Michael Paquier of eliminating code
duplication by defining a couple of intermediate symbols for the
socket option.
In passing, make some effort to reduce the number of translatable messages
by replacing "setsockopt(foo) failed" with "setsockopt(%s) failed", etc,
throughout the affected files. And update relevant documentation so
that it doesn't claim to provide an exhaustive list of the possible
socket option names.
Like the previous commit (f0256c774), back-patch to all supported branches.
Discussion: https://postgr.es/m/20170627163757.25161.528@wrigleys.postgresql.org
This commit is contained in:
@@ -593,8 +593,8 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||
<para>
|
||||
Specifies the number of seconds before sending a keepalive packet on
|
||||
an otherwise idle connection. A value of 0 uses the system default.
|
||||
This parameter is supported only on systems that support the
|
||||
<symbol>TCP_KEEPIDLE</> or <symbol>TCP_KEEPALIVE</> symbols, and on
|
||||
This parameter is supported only on systems that support
|
||||
<symbol>TCP_KEEPIDLE</> or an equivalent socket option, and on
|
||||
Windows; on other systems, it must be zero.
|
||||
In sessions connected via a Unix-domain socket, this parameter is
|
||||
ignored and always reads as zero.
|
||||
@@ -617,9 +617,9 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||
<para>
|
||||
Specifies the number of seconds between sending keepalives on an
|
||||
otherwise idle connection. A value of 0 uses the system default.
|
||||
This parameter is supported only on systems that support the
|
||||
<symbol>TCP_KEEPINTVL</> symbol, and on Windows; on other systems, it
|
||||
must be zero.
|
||||
This parameter is supported only on systems that support
|
||||
<symbol>TCP_KEEPINTVL</> or an equivalent socket option, and on
|
||||
Windows; on other systems, it must be zero.
|
||||
In sessions connected via a Unix-domain socket, this parameter is
|
||||
ignored and always reads as zero.
|
||||
</para>
|
||||
@@ -640,9 +640,10 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies the number of keepalive packets to send on an otherwise idle
|
||||
connection. A value of 0 uses the system default. This parameter is
|
||||
supported only on systems that support the <symbol>TCP_KEEPCNT</>
|
||||
symbol; on other systems, it must be zero.
|
||||
connection. A value of 0 uses the system default.
|
||||
This parameter is supported only on systems that support
|
||||
<symbol>TCP_KEEPCNT</> or an equivalent socket option;
|
||||
on other systems, it must be zero.
|
||||
In sessions connected via a Unix-domain socket, this parameter is
|
||||
ignored and always reads as zero.
|
||||
</para>
|
||||
|
||||
@@ -1043,10 +1043,10 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
|
||||
Controls the number of seconds of inactivity after which TCP should
|
||||
send a keepalive message to the server. A value of zero uses the
|
||||
system default. This parameter is ignored for connections made via a
|
||||
Unix-domain socket, or if keepalives are disabled. It is only supported
|
||||
on systems where the <symbol>TCP_KEEPIDLE</> or <symbol>TCP_KEEPALIVE</>
|
||||
socket option is available, and on Windows; on other systems, it has no
|
||||
effect.
|
||||
Unix-domain socket, or if keepalives are disabled.
|
||||
It is only supported on systems where <symbol>TCP_KEEPIDLE</> or
|
||||
an equivalent socket option is available, and on Windows; on other
|
||||
systems, it has no effect.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1059,9 +1059,9 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
|
||||
that is not acknowledged by the server should be retransmitted. A
|
||||
value of zero uses the system default. This parameter is ignored for
|
||||
connections made via a Unix-domain socket, or if keepalives are disabled.
|
||||
It is only supported on systems where the <symbol>TCP_KEEPINTVL</>
|
||||
socket option is available, and on Windows; on other systems, it has no
|
||||
effect.
|
||||
It is only supported on systems where <symbol>TCP_KEEPINTVL</> or
|
||||
an equivalent socket option is available, and on Windows; on other
|
||||
systems, it has no effect.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -1074,8 +1074,9 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
|
||||
client's connection to the server is considered dead. A value of
|
||||
zero uses the system default. This parameter is ignored for
|
||||
connections made via a Unix-domain socket, or if keepalives are disabled.
|
||||
It is only supported on systems where the <symbol>TCP_KEEPCNT</>
|
||||
socket option is available; on other systems, it has no effect.
|
||||
It is only supported on systems where <symbol>TCP_KEEPCNT</> or
|
||||
an equivalent socket option is available; on other systems, it has no
|
||||
effect.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
Reference in New Issue
Block a user