From 29c6fb57cd76aff949d548369674426b23d79d05 Mon Sep 17 00:00:00 2001 From: gentle_hu Date: Sat, 15 Mar 2025 11:16:13 +0800 Subject: [PATCH] exit database if dms init failed --- src/gausskernel/ddes/adapter/ss_init.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gausskernel/ddes/adapter/ss_init.cpp b/src/gausskernel/ddes/adapter/ss_init.cpp index fed7e69ad4..607fbc890e 100644 --- a/src/gausskernel/ddes/adapter/ss_init.cpp +++ b/src/gausskernel/ddes/adapter/ss_init.cpp @@ -594,7 +594,8 @@ bool DMSWaitInitStartup() ereport(LOG, (errmsg("[SS reform][db sync wait] Node:%d first-round reform wait to initialize startup thread." "dms_status:%d", SS_MY_INST_ID, g_instance.dms_cxt.dms_status))); - long max_wait_time = 300000000L; + long max_wait_time = 600000000L; // 10 min + long warning_interval = 60000000L; // 1 min long wait_time = 0; while (g_instance.pid_cxt.StartupPID == 0) { (void)DMSReformCheckStartup(); @@ -602,10 +603,14 @@ bool DMSWaitInitStartup() return false; } - if ((wait_time % max_wait_time) == 0 && wait_time != 0) { - ereport(WARNING, (errmsg("[SS reform][db sync wait ] Node:%d wait startup thread " + if ((wait_time % warning_interval) == 0 && wait_time != 0) { + ereport(WARNING, (errmsg("[SS reform][db sync wait] Node:%d wait startup thread " "to initialize for %ld us.", SS_MY_INST_ID, wait_time))); } + if (wait_time >= max_wait_time) { + ereport(WARNING, (errmsg("[SS reform][db sync wait] DMS wait init timeout."))); + return false; + } pg_usleep(REFORM_WAIT_TIME); wait_time += REFORM_WAIT_TIME; -- Gitee