From b63def98108d7b03b818d35486e8cd643e48d035 Mon Sep 17 00:00:00 2001 From: zhenjinyang Date: Thu, 23 May 2024 19:09:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=BB=E5=A4=87?= =?UTF-8?q?=E6=9C=BAtpcc=E4=B8=9A=E5=8A=A1=E4=B8=ADkill=E5=A4=87=E6=9C=BA?= =?UTF-8?q?=E4=BA=A7=E7=94=9Fcore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/ddes/adapter/ss_reform_common.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gausskernel/ddes/adapter/ss_reform_common.cpp b/src/gausskernel/ddes/adapter/ss_reform_common.cpp index 128b384f03..4c90d0f5c9 100644 --- a/src/gausskernel/ddes/adapter/ss_reform_common.cpp +++ b/src/gausskernel/ddes/adapter/ss_reform_common.cpp @@ -594,7 +594,21 @@ void SSWaitStartupExit(bool send_signal) ereport(WARNING, (errmodule(MOD_DMS), errmsg("[SS reform] reform failed"))); } +#ifdef USE_ASSERT_CHECKING + while (true) { + if (g_instance.pid_cxt.StartupPID == 0) { + break; + } + if (g_instance.dms_cxt.SSRecoveryInfo.recovery_trapped_in_page_request) { + ereport(WARNING, (errmodule(MOD_DMS), + errmsg("[SS reform] pageredo or startup thread are trapped in page request " + "during recovery phase, need exit"))); + _exit(0); + } + pg_usleep(REFORM_WAIT_TIME); + } +#else long rto_limit = SS_RTO_LIMIT; ereport(LOG, (errmodule(MOD_DMS), errmsg("[SS reform] wait startup thread exit until RTO limit time:%d sec", @@ -618,6 +632,7 @@ void SSWaitStartupExit(bool send_signal) pg_usleep(REFORM_WAIT_TIME); wait_time += REFORM_WAIT_TIME; } +#endif } void SSHandleStartupWhenReformStart(dms_reform_start_context_t *rs_cxt) -- Gitee From b153a265a2d2ff4693b82dd132d5e77476020377 Mon Sep 17 00:00:00 2001 From: zhenjinyang Date: Fri, 24 May 2024 16:45:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8B=89=E8=B5=B7?= =?UTF-8?q?=E4=B8=BB=E5=A4=87=E6=9C=BAtpcc=E4=B8=9A=E5=8A=A1=20kill?= =?UTF-8?q?=E5=A4=87=E6=9C=BA=E8=BF=9B=E7=A8=8B,=E4=B8=BB=E6=9C=BA?= =?UTF-8?q?=E5=81=B6=E7=8E=B0core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ddes/adapter/ss_reform_common.cpp | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/gausskernel/ddes/adapter/ss_reform_common.cpp b/src/gausskernel/ddes/adapter/ss_reform_common.cpp index 4c90d0f5c9..74cb737ab5 100644 --- a/src/gausskernel/ddes/adapter/ss_reform_common.cpp +++ b/src/gausskernel/ddes/adapter/ss_reform_common.cpp @@ -595,19 +595,8 @@ void SSWaitStartupExit(bool send_signal) errmsg("[SS reform] reform failed"))); } #ifdef USE_ASSERT_CHECKING - while (true) { - if (g_instance.pid_cxt.StartupPID == 0) { - break; - } - - if (g_instance.dms_cxt.SSRecoveryInfo.recovery_trapped_in_page_request) { - ereport(WARNING, (errmodule(MOD_DMS), - errmsg("[SS reform] pageredo or startup thread are trapped in page request " - "during recovery phase, need exit"))); - _exit(0); - } - pg_usleep(REFORM_WAIT_TIME); - } + ereport(WARNING, (errmodule(MOD_DMS), + errmsg("[SS reform] wait for the startup thread to exit"))); #else long rto_limit = SS_RTO_LIMIT; ereport(LOG, (errmodule(MOD_DMS), @@ -615,6 +604,7 @@ void SSWaitStartupExit(bool send_signal) rto_limit / (1000 * 1000)))); long wait_time = 0; +#endif while (true) { if (g_instance.pid_cxt.StartupPID == 0) { break; @@ -626,13 +616,14 @@ void SSWaitStartupExit(bool send_signal) "during recovery phase, need exit"))); _exit(0); } +#ifndef USE_ASSERT_CHECKING if (wait_time > rto_limit) { SSProcessForceExit(); } pg_usleep(REFORM_WAIT_TIME); wait_time += REFORM_WAIT_TIME; - } #endif + } } void SSHandleStartupWhenReformStart(dms_reform_start_context_t *rs_cxt) -- Gitee