[PATCH] Change default client_connection_check_interval to 2000ms
Jeremy Schneider <schneider@ardentperf.com>
From: Jeremy Schneider <schneider@ardentperf.com>
To:
Date: 2026-02-05T05:08:32Z
Lists: pgsql-hackers
The default value of client_connection_check_interval is changed from 0
(disabled) to 2000ms (2 seconds). This enables periodic checking for client
disconnection during long-running queries by default, which can help detect
and clean up queries from disconnected clients more promptly.
A value of 0 continues to disable connection checking for users who prefer
the previous behavior.
---
doc/src/sgml/config.sgml | 9 +++++----
src/backend/utils/misc/guc_parameters.dat | 2 +-
src/backend/utils/misc/postgresql.conf.sample | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 5560b95ee60..5bc7f029e80 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1059,10 +1059,11 @@ include_dir 'conf.d'
</para>
<para>
If the value is specified without units, it is taken as milliseconds.
- The default value is <literal>0</literal>, which disables connection
- checks. Without connection checks, the server will detect the loss of
- the connection only at the next interaction with the socket, when it
- waits for, receives or sends data.
+ The default value is <literal>2000</literal> (2 seconds). A value of
+ <literal>0</literal> disables connection checks. Without connection
+ checks, the server will detect the loss of the connection only at the
+ next interaction with the socket, when it waits for, receives or sends
+ data.
</para>
<para>
For the kernel itself to detect lost TCP connections reliably and within
diff --git a/src/backend/utils/misc/guc_parameters.dat b/src/backend/utils/misc/guc_parameters.dat
index f0260e6e412..91c0d740ce5 100644
--- a/src/backend/utils/misc/guc_parameters.dat
+++ b/src/backend/utils/misc/guc_parameters.dat
@@ -403,7 +403,7 @@
long_desc => '0 disables connection checks.',
flags => 'GUC_UNIT_MS',
variable => 'client_connection_check_interval',
- boot_val => '0',
+ boot_val => '2000',
min => '0',
max => 'INT_MAX',
check_hook => 'check_client_connection_check_interval',
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index c4f92fcdac8..8dd89d6da4e 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -87,7 +87,7 @@
#tcp_user_timeout = 0 # TCP_USER_TIMEOUT, in milliseconds;
# 0 selects the system default
-#client_connection_check_interval = 0 # time between checks for client
+#client_connection_check_interval = 2000 # time between checks for client
# disconnection while running queries;
# 0 for never
--
2.43.0
--MP_/qz2OYyXRpSnvpF48FALDBTl--