From 584e63c3822ef40af28335acbd6cf3d113b23970 Mon Sep 17 00:00:00 2001 From: chendong76 <1209756284@qq.com> Date: Mon, 24 Jul 2023 16:10:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtcp=5Fuser=5Ftimeout=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=A4=8D=E5=88=B6=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/utils/misc/guc.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/common/backend/utils/misc/guc.cpp b/src/common/backend/utils/misc/guc.cpp index 2bd38761e..58629461c 100755 --- a/src/common/backend/utils/misc/guc.cpp +++ b/src/common/backend/utils/misc/guc.cpp @@ -498,9 +498,11 @@ static void pg_timezone_abbrev_initialize(void); static void assign_tcp_keepalives_idle(int newval, void *extra); static void assign_tcp_keepalives_interval(int newval, void *extra); static void assign_tcp_keepalives_count(int newval, void *extra); +static void assign_tcp_user_timeout(int newval, void *extra); static const char* show_tcp_keepalives_idle(void); static const char* show_tcp_keepalives_interval(void); static const char* show_tcp_keepalives_count(void); +static const char* show_tcp_user_timeout(void); static bool check_effective_io_concurrency(int* newval, void** extra, GucSource source); static void assign_effective_io_concurrency(int newval, void* extra); static void assign_pgstat_temp_directory(const char* newval, void* extra); @@ -2542,8 +2544,8 @@ static void InitConfigureNamesInt() 0, 3600000, NULL, - assign_tcp_keepalives_count, - show_tcp_keepalives_count}, + assign_tcp_user_timeout, + show_tcp_user_timeout}, {{"gin_fuzzy_search_limit", PGC_USERSET, NODE_ALL, @@ -11958,6 +11960,21 @@ static const char* show_tcp_keepalives_count(void) return nbuf; } +static void assign_tcp_user_timeout(int newval, void *extra) +{ + (void) pq_settcpusertimeout(newval, u_sess->proc_cxt.MyProcPort); +} + +static const char* show_tcp_user_timeout(void) +{ + const int maxBufLen = 16; + static char nbuf[maxBufLen]; + + errno_t rc = snprintf_s(nbuf, maxBufLen, maxBufLen - 1, "%d", pq_gettcpusertimeout(u_sess->proc_cxt.MyProcPort)); + securec_check_ss(rc, "\0", "\0"); + return nbuf; +} + static bool check_effective_io_concurrency(int* newval, void** extra, GucSource source) { #ifdef USE_PREFETCH