From f52dfb78860e275af802eff329bb2d7f5838e324 Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii Date: Sun, 13 Dec 2020 17:08:08 +0900 Subject: [PATCH] Fix "no watchdog configuration for local pgpool node" error. If watchdog is disabled and wd_port is not defined (thus it's 0, which is the default config value), the error occurred while checking configured watchdog nodes. If watchdog is disabled, the check should not be performed. Back patch to V4.2 stable when watchdog local node was introduced. --- src/config/pool_config_variables.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/config/pool_config_variables.c b/src/config/pool_config_variables.c index 443347b07..3b8a8daba 100644 --- a/src/config/pool_config_variables.c +++ b/src/config/pool_config_variables.c @@ -4650,20 +4650,24 @@ config_post_processor(ConfigContext context, int elevel) /* Set the number of configured Watchdog nodes */ g_pool_config.wd_nodes.num_wd = 0; - for (i = 0; i < MAX_WATCHDOG_NUM; i++) + + if (g_pool_config.use_watchdog) { - WdNodeInfo *wdNode = &g_pool_config.wd_nodes.wd_node_info[i]; + for (i = 0; i < MAX_WATCHDOG_NUM; i++) + { + WdNodeInfo *wdNode = &g_pool_config.wd_nodes.wd_node_info[i]; - if (i == g_pool_config.pgpool_node_id && wdNode->wd_port <= 0) - { - ereport(elevel, - (errmsg("invalid watchdog configuration"), - errdetail("no watchdog configuration for local pgpool node, pgpool node id: %d ", g_pool_config.pgpool_node_id))); - return false; - } + if (i == g_pool_config.pgpool_node_id && wdNode->wd_port <= 0) + { + ereport(elevel, + (errmsg("invalid watchdog configuration"), + errdetail("no watchdog configuration for local pgpool node, pgpool node id: %d ", g_pool_config.pgpool_node_id))); + return false; + } - if (wdNode->wd_port > 0) - g_pool_config.wd_nodes.num_wd = i + 1; + if (wdNode->wd_port > 0) + g_pool_config.wd_nodes.num_wd = i + 1; + } } /* Set configured heartbeat destination interfaces */ -- 2.39.5