From a3d3ceca7d028278b121d19e53219c7abcb18a94 Mon Sep 17 00:00:00 2001 From: liuzhanfeng2 Date: Tue, 5 Dec 2023 10:20:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=B1=A0=E5=8C=96=EF=BC=9Are?= =?UTF-8?q?form=E5=9C=BA=E6=99=AF=E5=85=B3=E9=97=AD.cbm=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8F=A5=E6=9F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/process/postmaster/postmaster.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gausskernel/process/postmaster/postmaster.cpp b/src/gausskernel/process/postmaster/postmaster.cpp index 86e95f843..ec122ec01 100644 --- a/src/gausskernel/process/postmaster/postmaster.cpp +++ b/src/gausskernel/process/postmaster/postmaster.cpp @@ -6767,6 +6767,10 @@ dms_demote: signal_child(g_instance.pid_cxt.SnapshotPID, SIGTERM); } + if (g_instance.pid_cxt.CBMWriterPID != 0) { + signal_child(g_instance.pid_cxt.CBMWriterPID, SIGTERM); + } + ereport(LOG, (errmsg("[SS switchover] primary demoting: " "killed threads, waiting for backends die"))); pmState = PM_WAIT_BACKENDS; @@ -10361,6 +10365,10 @@ static void sigusr1_handler(SIGNAL_ARGS) signal_child(g_instance.pid_cxt.FaultMonitorPID, SIGTERM); } + if (g_instance.pid_cxt.CBMWriterPID != 0) { + signal_child(g_instance.pid_cxt.CBMWriterPID, SIGTERM); + } + pmState = PM_WAIT_BACKENDS; if (ENABLE_THREAD_POOL) { g_threadPoolControler->EnableAdjustPool(); @@ -10433,6 +10441,10 @@ static void sigusr1_handler(SIGNAL_ARGS) signal_child(g_instance.pid_cxt.SnapshotPID, SIGTERM); } + if (g_instance.pid_cxt.CBMWriterPID != 0) { + signal_child(g_instance.pid_cxt.CBMWriterPID, SIGTERM); + } + ereport(LOG, (errmodule(MOD_DMS), errmsg("[SS reform] terminate backends success"))); g_instance.dms_cxt.SSRecoveryInfo.reform_ready = true; } @@ -10480,6 +10492,9 @@ static void sigusr1_handler(SIGNAL_ARGS) if (g_instance.pid_cxt.WalWriterPID != 0) signal_child(g_instance.pid_cxt.WalWriterPID, SIGTERM); + if (g_instance.pid_cxt.CBMWriterPID != 0) + signal_child(g_instance.pid_cxt.CBMWriterPID, SIGTERM); + if (g_instance.pid_cxt.WalWriterAuxiliaryPID != 0) signal_child(g_instance.pid_cxt.WalWriterAuxiliaryPID, SIGTERM); pmState = PM_WAIT_BACKENDS;