diff --git a/src/gausskernel/process/postmaster/postmaster.cpp b/src/gausskernel/process/postmaster/postmaster.cpp index 19c162859..66c9a8433 100755 --- a/src/gausskernel/process/postmaster/postmaster.cpp +++ b/src/gausskernel/process/postmaster/postmaster.cpp @@ -4058,9 +4058,6 @@ static void SIGHUP_handler(SIGNAL_ARGS) if ( #ifdef ENABLE_MULTIPLE_NODES IS_PGXC_COORDINATOR && -#else - (t_thrd.postmaster_cxt.HaShmData->current_mode == NORMAL_MODE || - t_thrd.postmaster_cxt.HaShmData->current_mode == PRIMARY_MODE) && #endif g_instance.pid_cxt.TwoPhaseCleanerPID != 0) signal_child(g_instance.pid_cxt.TwoPhaseCleanerPID, SIGHUP); @@ -4644,6 +4641,9 @@ static void ProcessDemoteRequest(void) Assert(!dummyStandbyMode); signal_child(g_instance.pid_cxt.BgWriterPID, SIGTERM); } + if (g_instance.pid_cxt.TwoPhaseCleanerPID != 0) + signal_child(g_instance.pid_cxt.TwoPhaseCleanerPID, SIGTERM); + /* and the walwriter too */ if (g_instance.pid_cxt.WalWriterPID != 0) signal_child(g_instance.pid_cxt.WalWriterPID, SIGTERM); @@ -4715,6 +4715,9 @@ static void ProcessDemoteRequest(void) if (g_instance.pid_cxt.HeartbeatPID != 0) signal_child(g_instance.pid_cxt.HeartbeatPID, SIGTERM); + if (g_instance.pid_cxt.TwoPhaseCleanerPID != 0) + signal_child(g_instance.pid_cxt.TwoPhaseCleanerPID, SIGTERM); + if (g_instance.pid_cxt.WLMCollectPID != 0) { WLMProcessThreadShutDown(); signal_child(g_instance.pid_cxt.WLMCollectPID, SIGTERM); @@ -5564,9 +5567,6 @@ static void reaper(SIGNAL_ARGS) if ( #ifdef ENABLE_MULTIPLE_NODES IS_PGXC_COORDINATOR && -#else - (t_thrd.postmaster_cxt.HaShmData->current_mode == NORMAL_MODE || - t_thrd.postmaster_cxt.HaShmData->current_mode == PRIMARY_MODE) && #endif pid == g_instance.pid_cxt.TwoPhaseCleanerPID) { g_instance.pid_cxt.TwoPhaseCleanerPID = 0; diff --git a/src/gausskernel/process/postmaster/twophasecleaner.cpp b/src/gausskernel/process/postmaster/twophasecleaner.cpp index f8f4bb5d2..45b56753c 100644 --- a/src/gausskernel/process/postmaster/twophasecleaner.cpp +++ b/src/gausskernel/process/postmaster/twophasecleaner.cpp @@ -175,7 +175,7 @@ NON_EXEC_STATIC void TwoPhaseCleanerMain() rc = sprintf_s(cmd, sizeof(cmd), "gs_clean -a -p %d -e -v -r -j %d > /dev/null 2>&1", - g_instance.attr.attr_network.PoolerPort, + g_instance.attr.attr_network.PostPortNumber, u_sess->attr.attr_storage.twophase_clean_workers); securec_check_ss(rc, "\0", "\0"); #endif