diff --git a/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater-HealthIOWait.patch b/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater-HealthIOWait.patch deleted file mode 100644 index b4ce0050cdcad6375c0f7dd97ac457177d06c85f..0000000000000000000000000000000000000000 --- a/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater-HealthIOWait.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 30271f16c9878a03b803d2f1e6b5b5ec214a6365 Mon Sep 17 00:00:00 2001 -From: liupei -Date: Wed, 23 Aug 2023 19:02:10 +0800 -Subject: [PATCH] Add the parameter of dampening and fix attrd_updater command - ---- - agents/ocf/HealthIOWait.in | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/agents/ocf/HealthIOWait.in b/agents/ocf/HealthIOWait.in -index ba7a17a..de2844b 100644 ---- a/agents/ocf/HealthIOWait.in -+++ b/agents/ocf/HealthIOWait.in -@@ -60,6 +60,15 @@ the #health-iowait will go red if the %iowait of the CPU get higher than 15%. - - - -+ -+ -+The time to wait (dampening) in seconds for further changes before writing -+ -+The time to wait (dampening) in seconds for further changes -+before writing -+ -+ -+ - - - -@@ -109,16 +118,16 @@ agent_monitor() { - # echo $OCF_RESKEY_yellow_limit - if [ $WAIT -gt ${OCF_RESKEY_red_limit} ] ; then - # echo "System state RED!" -- attrd_updater -n "#health-iowait" -U "red" -d "5s" -+ attrd_updater -n "#health-iowait" -B "red" -d ${OCF_RESKEY_dampening} - return $OCF_SUCCESS - fi - - if [ $WAIT -gt ${OCF_RESKEY_yellow_limit} ] ; then - # echo "System state yellow." -- attrd_updater -n "#health-iowait" -U "yellow" -d "5s" -+ attrd_updater -n "#health-iowait" -B "yellow" -d ${OCF_RESKEY_dampening} - else - # echo "System state green." -- attrd_updater -n "#health-iowait" -U "green" -d "5s" -+ attrd_updater -n "#health-iowait" -B "green" -d ${OCF_RESKEY_dampening} - fi - return $OCF_SUCCESS - fi -@@ -175,6 +184,10 @@ if [ -z "${OCF_RESKEY_yellow_limit}" ] ; then - OCF_RESKEY_yellow_limit=10 - fi - -+if [ -z "${OCF_RESKEY_dampening}" ]; then -+ OCF_RESKEY_dampening="5s" -+fi -+ - case $__OCF_ACTION in - meta-data) meta_data - exit $OCF_SUCCESS --- -2.33.1.windows.1 - diff --git a/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater.patch b/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater.patch deleted file mode 100644 index bd864d7d84c255ab41e9d43b3c983c153c064e49..0000000000000000000000000000000000000000 --- a/0001-Add-the-parameter-of-dampening-and-fix-attrd_updater.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 92d5801b36408c3e6af561ecb546df0641212b4a Mon Sep 17 00:00:00 2001 -From: liupei -Date: Wed, 23 Aug 2023 11:28:38 +0800 -Subject: [PATCH] Add the parameter of dampening and fix attrd_updater command - ---- - agents/ocf/HealthCPU.in | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -diff --git a/agents/ocf/HealthCPU.in b/agents/ocf/HealthCPU.in -index 4a8e7c3..a852a7a 100644 ---- a/agents/ocf/HealthCPU.in -+++ b/agents/ocf/HealthCPU.in -@@ -67,6 +67,15 @@ the #health-cpu will go red if the %idle of the CPU falls below 10%. - - - -+ -+ -+The time to wait (dampening) in seconds for further changes before writing -+ -+The time to wait (dampening) in seconds for further changes -+before writing -+ -+ -+ - - - -@@ -117,16 +126,16 @@ healthcpu_monitor() { - - if [ $IDLE -lt ${OCF_RESKEY_red_limit} ] ; then - # echo "System state RED!" -- attrd_updater -n "#health-cpu" -U "red" -d "30s" -+ attrd_updater -n "#health-cpu" -B "red" -d ${OCF_RESKEY_dampening} - return $OCF_SUCCESS - fi - - if [ $IDLE -lt ${OCF_RESKEY_yellow_limit} ] ; then - # echo "System state yellow." -- attrd_updater -n "#health-cpu" -U "yellow" -d "30s" -+ attrd_updater -n "#health-cpu" -B "yellow" -d ${OCF_RESKEY_dampening} - else - # echo "System state green." -- attrd_updater -n "#health-cpu" -U "green" -d "30s" -+ attrd_updater -n "#health-cpu" -B "green" -d ${OCF_RESKEY_dampening} - fi - - return $OCF_SUCCESS -@@ -188,6 +197,9 @@ fi - if [ -z "${OCF_RESKEY_yellow_limit}" ] ; then - OCF_RESKEY_yellow_limit=50 - fi -+if [ -z "${OCF_RESKEY_dampening}" ]; then -+ OCF_RESKEY_dampening="30s" -+fi - - case "$__OCF_ACTION" in - meta-data) meta_data --- -2.33.1.windows.1 - diff --git a/0001-Fix-glib-assertions.patch b/0001-Fix-glib-assertions.patch deleted file mode 100644 index 5cc9aa6b2358e048d84ff848e79d9ff7189057a8..0000000000000000000000000000000000000000 --- a/0001-Fix-glib-assertions.patch +++ /dev/null @@ -1,125 +0,0 @@ -From e3f6351646d40a533be1cdce83d23134b8d16f23 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Tue, 15 Aug 2023 19:13:14 +0800 -Subject: [PATCH] Fix glib assertions due to asynchronous metadata action - completing after shutdown begins - ---- - daemons/controld/controld_cib.c | 11 +++++++++-- - daemons/controld/controld_execd.c | 4 +++- - daemons/controld/controld_execd_state.c | 15 +++++++-------- - daemons/controld/controld_lrm.h | 5 ----- - 4 files changed, 19 insertions(+), 16 deletions(-) - -diff --git a/daemons/controld/controld_cib.c b/daemons/controld/controld_cib.c -index 94b99dd..43cf857 100644 ---- a/daemons/controld/controld_cib.c -+++ b/daemons/controld/controld_cib.c -@@ -841,10 +841,17 @@ cib_rsc_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void *use - case pcmk_ok: - case -pcmk_err_diff_failed: - case -pcmk_err_diff_resync: -- crm_trace("Resource update %d complete: rc=%d", call_id, rc); -+ crm_trace("Resource history update completed (call=%d rc=%d)", -+ call_id, rc); - break; - default: -- crm_warn("Resource update %d failed: (rc=%d) %s", call_id, rc, pcmk_strerror(rc)); -+ if (call_id > 0) { -+ crm_warn("Resource history update %d failed: %s " -+ CRM_XS " rc=%d", call_id, pcmk_strerror(rc), rc); -+ } else { -+ crm_warn("Resource history update failed: %s " CRM_XS " rc=%d", -+ pcmk_strerror(rc), rc); -+ } - } - - if (call_id == pending_rsc_update) { -diff --git a/daemons/controld/controld_execd.c b/daemons/controld/controld_execd.c -index 0de399c..f37446b 100644 ---- a/daemons/controld/controld_execd.c -+++ b/daemons/controld/controld_execd.c -@@ -1394,7 +1394,9 @@ metadata_complete(int pid, const pcmk__action_result_t *result, void *user_data) - md = controld_cache_metadata(lrm_state->metadata_cache, data->rsc, - result->action_stdout); - } -- do_lrm_rsc_op(lrm_state, data->rsc, data->input_xml, md); -+ if (!pcmk_is_set(controld_globals.fsa_input_register, R_HA_DISCONNECTED)) { -+ do_lrm_rsc_op(lrm_state, data->rsc, data->input_xml, md); -+ } - free_metadata_cb_data(data); - } - -diff --git a/daemons/controld/controld_execd_state.c b/daemons/controld/controld_execd_state.c -index 8c68bfc..2411297 100644 ---- a/daemons/controld/controld_execd_state.c -+++ b/daemons/controld/controld_execd_state.c -@@ -132,12 +132,6 @@ lrm_state_create(const char *node_name) - return state; - } - --void --lrm_state_destroy(const char *node_name) --{ -- g_hash_table_remove(lrm_state_table, node_name); --} -- - static gboolean - remote_proxy_remove_by_node(gpointer key, gpointer value, gpointer user_data) - { -@@ -307,7 +301,7 @@ lrm_state_destroy_all(void) - lrm_state_t * - lrm_state_find(const char *node_name) - { -- if (!node_name) { -+ if ((node_name == NULL) || (lrm_state_table == NULL)) { - return NULL; - } - return g_hash_table_lookup(lrm_state_table, node_name); -@@ -318,6 +312,8 @@ lrm_state_find_or_create(const char *node_name) - { - lrm_state_t *lrm_state; - -+ CRM_CHECK(lrm_state_table != NULL, return NULL); -+ - lrm_state = g_hash_table_lookup(lrm_state_table, node_name); - if (!lrm_state) { - lrm_state = lrm_state_create(node_name); -@@ -329,6 +325,9 @@ lrm_state_find_or_create(const char *node_name) - GList * - lrm_state_get_list(void) - { -+ if (lrm_state_table == NULL) { -+ return NULL; -+ } - return g_hash_table_get_values(lrm_state_table); - } - -@@ -799,7 +798,7 @@ lrm_state_unregister_rsc(lrm_state_t * lrm_state, - } - - if (is_remote_lrmd_ra(NULL, NULL, rsc_id)) { -- lrm_state_destroy(rsc_id); -+ g_hash_table_remove(lrm_state_table, rsc_id); - return pcmk_ok; - } - -diff --git a/daemons/controld/controld_lrm.h b/daemons/controld/controld_lrm.h -index 25f3db3..c3113e4 100644 ---- a/daemons/controld/controld_lrm.h -+++ b/daemons/controld/controld_lrm.h -@@ -108,11 +108,6 @@ gboolean lrm_state_init_local(void); - */ - void lrm_state_destroy_all(void); - --/*! -- * \brief Destroy executor connection by node name -- */ --void lrm_state_destroy(const char *node_name); -- - /*! - * \brief Find lrm_state data by node name - */ --- -2.41.0 - diff --git a/Fix-a-bug-in-clone-resource-description-display.patch b/Fix-a-bug-in-clone-resource-description-display.patch deleted file mode 100644 index 711bb180de85a7228d41fef78abf2b8f49994085..0000000000000000000000000000000000000000 --- a/Fix-a-bug-in-clone-resource-description-display.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ca62cd81870590977f77e95636754214d842814c Mon Sep 17 00:00:00 2001 -From: bizhiyuan -Date: Mon, 4 Sep 2023 10:00:40 +0800 -Subject: [PATCH] Fix a bug in clone resource description display - ---- - lib/pengine/pe_output.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c -index 68cc867..d9e2620 100644 ---- a/lib/pengine/pe_output.c -+++ b/lib/pengine/pe_output.c -@@ -20,8 +20,7 @@ pe__resource_description(const pe_resource_t *rsc, uint32_t show_opts) - { - const char * desc = NULL; - // User-supplied description -- if (pcmk_any_flags_set(show_opts, pcmk_show_rsc_only|pcmk_show_description) -- || pcmk__list_of_multiple(rsc->running_on)) { -+ if (pcmk_any_flags_set(show_opts, pcmk_show_rsc_only|pcmk_show_description)){ - desc = crm_element_value(rsc->xml, XML_ATTR_DESC); - } - return desc; --- -2.27.0 - diff --git a/Fix-controller-not-check-watchdog-fencing-status.patch b/Fix-controller-not-check-watchdog-fencing-status.patch deleted file mode 100644 index 5b84a54e85c44c982bf9915f62f806c0a1acea45..0000000000000000000000000000000000000000 --- a/Fix-controller-not-check-watchdog-fencing-status.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 9a0c1bbc899fff8c5c0de2462726bd128fd35c73 Mon Sep 17 00:00:00 2001 -From: bizhiyuan -Date: Tue, 5 Sep 2023 23:47:24 +0800 -Subject: [PATCH] Fix: controller: do not check whether watchdog fencing is - enabled for the node if stonith-watchdog-timeout is not even configured - ---- - daemons/controld/controld_fencing.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/daemons/controld/controld_fencing.c b/daemons/controld/controld_fencing.c -index 89cb61f..84591b6 100644 ---- a/daemons/controld/controld_fencing.c -+++ b/daemons/controld/controld_fencing.c -@@ -1000,12 +1000,14 @@ controld_execute_fence_action(pcmk__graph_t *graph, - bool - controld_verify_stonith_watchdog_timeout(const char *value) - { -+ long st_timeout = value? crm_get_msec(value) : 0; - const char *our_nodename = controld_globals.our_nodename; - gboolean rv = TRUE; - -- if (stonith_api && (stonith_api->state != stonith_disconnected) && -- stonith__watchdog_fencing_enabled_for_node_api(stonith_api, -- our_nodename)) { -+ if (st_timeout == 0 -+ || (stonith_api && (stonith_api->state != stonith_disconnected) && -+ stonith__watchdog_fencing_enabled_for_node_api(stonith_api, -+ our_nodename))) { - rv = pcmk__valid_sbd_timeout(value); - } - return rv; --- -2.27.0 - diff --git a/Fix-libcrmcommon-wait-for-reply-from-appropriate-con.patch b/Fix-libcrmcommon-wait-for-reply-from-appropriate-con.patch deleted file mode 100644 index 6189dbd610b332c56a6c8a5df28f3b4b13653c6e..0000000000000000000000000000000000000000 --- a/Fix-libcrmcommon-wait-for-reply-from-appropriate-con.patch +++ /dev/null @@ -1,95 +0,0 @@ -From b2cc5110fa35ed8010412391c9bf7673a25cf2ae Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Fri, 25 Aug 2023 15:29:09 +0800 -Subject: [PATCH] Fix: libcrmcommon: wait for reply from appropriate controller - commands - ---- - lib/common/ipc_controld.c | 49 ++++++++++++++------------------------- - 1 file changed, 17 insertions(+), 32 deletions(-) - -diff --git a/lib/common/ipc_controld.c b/lib/common/ipc_controld.c -index 9303afd..993a7b5 100644 ---- a/lib/common/ipc_controld.c -+++ b/lib/common/ipc_controld.c -@@ -177,18 +177,16 @@ set_nodes_data(pcmk_controld_api_reply_t *data, xmlNode *msg_data) - static bool - reply_expected(pcmk_ipc_api_t *api, xmlNode *request) - { -- const char *command = crm_element_value(request, F_CRM_TASK); -- -- if (command == NULL) { -- return false; -- } -- -- // We only need to handle commands that functions in this file can send -- return !strcmp(command, CRM_OP_REPROBE) -- || !strcmp(command, CRM_OP_NODE_INFO) -- || !strcmp(command, CRM_OP_PING) -- || !strcmp(command, CRM_OP_LRM_FAIL) -- || !strcmp(command, CRM_OP_LRM_DELETE); -+ // We only need to handle commands that API functions can send -+ return pcmk__str_any_of(crm_element_value(request, F_CRM_TASK), -+ PCMK__CONTROLD_CMD_NODES, -+ CRM_OP_LRM_DELETE, -+ CRM_OP_LRM_FAIL, -+ CRM_OP_NODE_INFO, -+ CRM_OP_PING, -+ CRM_OP_REPROBE, -+ CRM_OP_RM_NODE_CACHE, -+ NULL); - } - - static bool -@@ -202,22 +200,12 @@ dispatch(pcmk_ipc_api_t *api, xmlNode *reply) - pcmk_controld_reply_unknown, NULL, NULL, - }; - -- /* If we got an ACK, return true so the caller knows to expect more responses -- * from the IPC server. We do this before decrementing replies_expected because -- * ACKs are not going to be included in that value. -- * -- * Note that we cannot do the same kind of status checking here that we do in -- * ipc_pacemakerd.c. The ACK message we receive does not necessarily contain -- * a status attribute. That is, we may receive this: -- * -- * -- * -- * Instead of this: -- * -- * -- */ - if (pcmk__str_eq(crm_element_name(reply), "ack", pcmk__str_none)) { -- return true; // More replies needed -+ /* ACKs are trivial responses that do not count toward expected replies, -+ * and do not have all the fields that validation requires, so skip that -+ * processing. -+ */ -+ return private->replies_expected > 0; - } - - if (private->replies_expected > 0) { -@@ -344,18 +332,15 @@ static int - send_controller_request(pcmk_ipc_api_t *api, xmlNode *request, - bool reply_is_expected) - { -- int rc; -- - if (crm_element_value(request, XML_ATTR_REFERENCE) == NULL) { - return EINVAL; - } -- rc = pcmk__send_ipc_request(api, request); -- if ((rc == pcmk_rc_ok) && reply_is_expected) { -+ if (reply_is_expected) { - struct controld_api_private_s *private = api->api_data; - - private->replies_expected++; - } -- return rc; -+ return pcmk__send_ipc_request(api, request); - } - - static xmlNode * --- -2.33.0 - diff --git a/Fix-the-validation-function-of-input.patch b/Fix-the-validation-function-of-input.patch deleted file mode 100644 index 63f65273c1af4227b3890de2d65915f10713879c..0000000000000000000000000000000000000000 --- a/Fix-the-validation-function-of-input.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 97f65bfa392b5663e023f5bee46697e778423b55 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Mon, 28 Aug 2023 17:02:22 +0800 -Subject: [PATCH] fix the validation function of input - ---- - agents/ocf/HealthCPU.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/agents/ocf/HealthCPU.in b/agents/ocf/HealthCPU.in -index a852a7a..4bd6e36 100755 ---- a/agents/ocf/HealthCPU.in -+++ b/agents/ocf/HealthCPU.in -@@ -207,7 +207,7 @@ meta-data) meta_data - ;; - start) healthcpu_start;; - stop) healthcpu_stop;; --monitor) healthcpu_monitor;; -+monitor) healthcpu_validate && healthcpu_monitor;; - reload-agent) healthcpu_reload_agent;; - validate-all) healthcpu_validate;; - usage|help) healthcpu_usage --- -2.33.1.windows.1 - diff --git a/Modify-HealthCPU-HealthIOWait-HealthSmart-about-dampen-reload-validate.patch b/Modify-HealthCPU-HealthIOWait-HealthSmart-about-dampen-reload-validate.patch deleted file mode 100644 index 80a22641b460cd573fe231bcc6994275244a9e24..0000000000000000000000000000000000000000 --- a/Modify-HealthCPU-HealthIOWait-HealthSmart-about-dampen-reload-validate.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 0a5fb8acb9eca15d4ea237b21da533f45821c099 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Thu, 7 Dec 2023 06:54:56 +0800 -Subject: [PATCH] Modify HealthCPU HealthIOWait HealthSmart about dampen, - reload, and validate simultaneously - ---- - agents/ocf/HealthCPU.in | 13 +++++-------- - agents/ocf/HealthIOWait.in | 19 +++++++++++-------- - agents/ocf/HealthSMART.in | 2 +- - 3 files changed, 17 insertions(+), 17 deletions(-) - -diff --git a/agents/ocf/HealthCPU.in b/agents/ocf/HealthCPU.in -index 4bd6e36..6e9745d 100755 ---- a/agents/ocf/HealthCPU.in -+++ b/agents/ocf/HealthCPU.in -@@ -26,6 +26,7 @@ - : ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} - . "${OCF_FUNCTIONS}" - : ${__OCF_ACTION:="$1"} -+: ${OCF_RESKEY_dampen:="30s"} - - ####################################################################### - -@@ -126,16 +127,16 @@ healthcpu_monitor() { - - if [ $IDLE -lt ${OCF_RESKEY_red_limit} ] ; then - # echo "System state RED!" -- attrd_updater -n "#health-cpu" -B "red" -d ${OCF_RESKEY_dampening} -+ attrd_updater -n "#health-cpu" -B "red" -d "${OCF_RESKEY_dampening}" - return $OCF_SUCCESS - fi - - if [ $IDLE -lt ${OCF_RESKEY_yellow_limit} ] ; then - # echo "System state yellow." -- attrd_updater -n "#health-cpu" -B "yellow" -d ${OCF_RESKEY_dampening} -+ attrd_updater -n "#health-cpu" -B "yellow" -d "${OCF_RESKEY_dampening}" - else - # echo "System state green." -- attrd_updater -n "#health-cpu" -B "green" -d ${OCF_RESKEY_dampening} -+ attrd_updater -n "#health-cpu" -B "green" -d "${OCF_RESKEY_dampening}" - fi - - return $OCF_SUCCESS -@@ -145,8 +146,7 @@ healthcpu_monitor() { - } - - healthcpu_reload_agent() { -- # No action required -- :; -+ return $OCF_SUCCESS - } - - healthcpu_validate() { -@@ -197,9 +197,6 @@ fi - if [ -z "${OCF_RESKEY_yellow_limit}" ] ; then - OCF_RESKEY_yellow_limit=50 - fi --if [ -z "${OCF_RESKEY_dampening}" ]; then -- OCF_RESKEY_dampening="30s" --fi - - case "$__OCF_ACTION" in - meta-data) meta_data -diff --git a/agents/ocf/HealthIOWait.in b/agents/ocf/HealthIOWait.in -index 61b6de3..65ce901 100755 ---- a/agents/ocf/HealthIOWait.in -+++ b/agents/ocf/HealthIOWait.in -@@ -19,6 +19,7 @@ - : ${OCF_FUNCTIONS:="${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs"} - . "${OCF_FUNCTIONS}" - : ${__OCF_ACTION:="$1"} -+: ${OCF_RESKEY_dampening:="5s"} - - ####################################################################### - -@@ -75,6 +76,7 @@ before writing - - - -+ - - - -@@ -86,7 +88,7 @@ END - - agent_usage() { - cat < -Date: Thu, 31 Aug 2023 00:50:44 +0800 -Subject: [PATCH] Refactor: fencer: sleep 1s between reconnects - ---- - daemons/controld/controld_control.c | 5 ++- - daemons/controld/controld_fencing.c | 65 ++++++++++++++--------------- - daemons/controld/controld_fencing.h | 2 +- - 3 files changed, 36 insertions(+), 36 deletions(-) - -diff --git a/daemons/controld/controld_control.c b/daemons/controld/controld_control.c -index ffc62a0..48efdd5 100644 ---- a/daemons/controld/controld_control.c -+++ b/daemons/controld/controld_control.c -@@ -504,8 +504,9 @@ do_started(long long action, - } else { - crm_notice("Pacemaker controller successfully started and accepting connections"); - } -- controld_trigger_fencer_connect(); -- -+ controld_set_fsa_input_flags(R_ST_REQUIRED); -+ controld_timer_fencer_connect(GINT_TO_POINTER(TRUE)); -+ - controld_clear_fsa_input_flags(R_STARTING); - register_fsa_input(msg_data->fsa_cause, I_PENDING, NULL); - } -diff --git a/daemons/controld/controld_fencing.c b/daemons/controld/controld_fencing.c -index 89cb61f..8f571b0 100644 ---- a/daemons/controld/controld_fencing.c -+++ b/daemons/controld/controld_fencing.c -@@ -391,7 +391,7 @@ execute_stonith_cleanup(void) - */ - - static stonith_t *stonith_api = NULL; --static crm_trigger_t *stonith_reconnect = NULL; -+static mainloop_timer_t *controld_fencer_connect_timer = NULL; - static char *te_client_id = NULL; - - static gboolean -@@ -448,8 +448,9 @@ tengine_stonith_connection_destroy(stonith_t *st, stonith_event_t *e) - - if (pcmk_is_set(controld_globals.fsa_input_register, R_ST_REQUIRED)) { - crm_crit("Fencing daemon connection failed"); -- mainloop_set_trigger(stonith_reconnect); -- -+ if (!mainloop_timer_running(controld_fencer_connect_timer)) { -+ mainloop_timer_start(controld_fencer_connect_timer); -+ } - } else { - crm_info("Fencing daemon disconnected"); - } -@@ -647,14 +648,14 @@ handle_fence_notification(stonith_t *st, stonith_event_t *event) - /*! - * \brief Connect to fencer - * -- * \param[in] user_data If NULL, retry failures now, otherwise retry in main loop -+ * \param[in] user_data If NULL, retry failures now, otherwise retry in mainloop timer - * -- * \return TRUE -+ * \return G_SOURCE_REMOVE on success, G_SOURCE_CONTINUE to retry - * \note If user_data is NULL, this will wait 2s between attempts, for up to - * 30 attempts, meaning the controller could be blocked as long as 58s. - */ --static gboolean --te_connect_stonith(gpointer user_data) -+gboolean -+controld_timer_fencer_connect(gpointer user_data) - { - int rc = pcmk_ok; - -@@ -662,13 +663,13 @@ te_connect_stonith(gpointer user_data) - stonith_api = stonith_api_new(); - if (stonith_api == NULL) { - crm_err("Could not connect to fencer: API memory allocation failed"); -- return TRUE; -+ return G_SOURCE_REMOVE; - } - } - - if (stonith_api->state != stonith_disconnected) { - crm_trace("Already connected to fencer, no need to retry"); -- return TRUE; -+ return G_SOURCE_REMOVE; - } - - if (user_data == NULL) { -@@ -681,17 +682,31 @@ te_connect_stonith(gpointer user_data) - } else { - // Non-blocking (retry failures later in main loop) - rc = stonith_api->cmds->connect(stonith_api, crm_system_name, NULL); -+ -+ -+ if (controld_fencer_connect_timer == NULL) { -+ controld_fencer_connect_timer = -+ mainloop_timer_add("controld_fencer_connect", 1000, -+ TRUE, controld_timer_fencer_connect, -+ GINT_TO_POINTER(TRUE)); -+ } -+ - if (rc != pcmk_ok) { - if (pcmk_is_set(controld_globals.fsa_input_register, - R_ST_REQUIRED)) { - crm_notice("Fencer connection failed (will retry): %s " - CRM_XS " rc=%d", pcmk_strerror(rc), rc); -- mainloop_set_trigger(stonith_reconnect); -- } else { -+ -+ if (!mainloop_timer_running(controld_fencer_connect_timer)) { -+ mainloop_timer_start(controld_fencer_connect_timer); -+ } -+ -+ return G_SOURCE_CONTINUE; -+ } else { - crm_info("Fencer connection failed (ignoring because no longer required): %s " - CRM_XS " rc=%d", pcmk_strerror(rc), rc); - } -- return TRUE; -+ return G_SOURCE_CONTINUE; - } - } - -@@ -709,23 +724,7 @@ te_connect_stonith(gpointer user_data) - crm_notice("Fencer successfully connected"); - } - -- return TRUE; --} -- --/*! -- \internal -- \brief Schedule fencer connection attempt in main loop --*/ --void --controld_trigger_fencer_connect(void) --{ -- if (stonith_reconnect == NULL) { -- stonith_reconnect = mainloop_add_trigger(G_PRIORITY_LOW, -- te_connect_stonith, -- GINT_TO_POINTER(TRUE)); -- } -- controld_set_fsa_input_flags(R_ST_REQUIRED); -- mainloop_set_trigger(stonith_reconnect); -+ return G_SOURCE_REMOVE; - } - - void -@@ -745,9 +744,9 @@ controld_disconnect_fencer(bool destroy) - stonith_api->cmds->free(stonith_api); - stonith_api = NULL; - } -- if (stonith_reconnect) { -- mainloop_destroy_trigger(stonith_reconnect); -- stonith_reconnect = NULL; -+ if (controld_fencer_connect_timer) { -+ mainloop_timer_del(controld_fencer_connect_timer); -+ controld_fencer_connect_timer = NULL; - } - if (te_client_id) { - free(te_client_id); -@@ -981,7 +980,7 @@ controld_execute_fence_action(pcmk__graph_t *graph, - priority_delay ? priority_delay : ""); - - /* Passing NULL means block until we can connect... */ -- te_connect_stonith(NULL); -+ controld_timer_fencer_connect(NULL); - - pcmk__scan_min_int(priority_delay, &delay_i, 0); - rc = fence_with_delay(target, type, delay_i); -diff --git a/daemons/controld/controld_fencing.h b/daemons/controld/controld_fencing.h -index 86a5050..76779c6 100644 ---- a/daemons/controld/controld_fencing.h -+++ b/daemons/controld/controld_fencing.h -@@ -19,7 +19,7 @@ void controld_configure_fencing(GHashTable *options); - void st_fail_count_reset(const char * target); - - // stonith API client --void controld_trigger_fencer_connect(void); -+gboolean controld_timer_fencer_connect(gpointer user_data); - void controld_disconnect_fencer(bool destroy); - int controld_execute_fence_action(pcmk__graph_t *graph, - pcmk__graph_action_t *action); --- -2.27.0 - diff --git a/fix-HealthSMART-parameter-check.patch b/fix-HealthSMART-parameter-check.patch deleted file mode 100644 index 8bc6c6450445c070ec90fccb1122f6aba9a4ed41..0000000000000000000000000000000000000000 --- a/fix-HealthSMART-parameter-check.patch +++ /dev/null @@ -1,67 +0,0 @@ -From b0d133b3931295c12421e56b798e5deb3a83a060 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Thu, 7 Dec 2023 15:00:05 +0800 -Subject: [PATCH] fix HealthSMART parameter check - ---- - agents/ocf/HealthSMART.in | 41 ++++++++++++++++++++------------------- - 1 file changed, 21 insertions(+), 20 deletions(-) - -diff --git a/agents/ocf/HealthSMART.in b/agents/ocf/HealthSMART.in -index b6edac2..3b15339 100755 ---- a/agents/ocf/HealthSMART.in -+++ b/agents/ocf/HealthSMART.in -@@ -136,29 +136,30 @@ END - ####################################################################### - - check_temperature() { -+ if [ -n "$1" ]; then -+ if [ $1 -lt ${lower_red_limit} ] ; then -+ ocf_log info "Drive ${DRIVE} ${DEVICE} too cold: ${1} C" -+ attrd_updater -n "#health-smart" -U "red" -d "${OCF_RESKEY_dampen}" -+ return 1 -+ fi - -- if [ $1 -lt ${lower_red_limit} ] ; then -- ocf_log info "Drive ${DRIVE} ${DEVICE} too cold: ${1} C" -- attrd_updater -n "#health-smart" -U "red" -d "${OCF_RESKEY_dampen}" -- return 1 -- fi -- -- if [ $1 -gt ${upper_red_limit} ] ; then -- ocf_log info "Drive ${DRIVE} ${DEVICE} too hot: ${1} C" -- attrd_updater -n "#health-smart" -U "red" -d "${OCF_RESKEY_dampen}" -- return 1 -- fi -+ if [ $1 -gt ${upper_red_limit} ] ; then -+ ocf_log info "Drive ${DRIVE} ${DEVICE} too hot: ${1} C" -+ attrd_updater -n "#health-smart" -U "red" -d "${OCF_RESKEY_dampen}" -+ return 1 -+ fi - -- if [ $1 -lt ${lower_yellow_limit} ] ; then -- ocf_log info "Drive ${DRIVE} ${DEVICE} quite cold: ${1} C" -- attrd_updater -n "#health-smart" -U "yellow" -d "${OCF_RESKEY_dampen}" -- return 1 -- fi -+ if [ $1 -lt ${lower_yellow_limit} ] ; then -+ ocf_log info "Drive ${DRIVE} ${DEVICE} quite cold: ${1} C" -+ attrd_updater -n "#health-smart" -U "yellow" -d "${OCF_RESKEY_dampen}" -+ return 1 -+ fi - -- if [ $1 -gt ${upper_yellow_limit} ] ; then -- ocf_log info "Drive ${DRIVE} ${DEVICE} quite hot: ${1} C" -- attrd_updater -n "#health-smart" -U "yellow" -d "${OCF_RESKEY_dampen}" -- return 1 -+ if [ $1 -gt ${upper_yellow_limit} ] ; then -+ ocf_log info "Drive ${DRIVE} ${DEVICE} quite hot: ${1} C" -+ attrd_updater -n "#health-smart" -U "yellow" -d "${OCF_RESKEY_dampen}" -+ return 1 -+ fi - fi - } - --- -2.33.0 - diff --git a/fix-the-validation-function-of-input-for-IOWait.patch b/fix-the-validation-function-of-input-for-IOWait.patch deleted file mode 100644 index 75e7c233049642a2490f01f024f73eb7e5f4df3c..0000000000000000000000000000000000000000 --- a/fix-the-validation-function-of-input-for-IOWait.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7ad8f0c1375b4d18efc65ccf10d640a51b23828f Mon Sep 17 00:00:00 2001 -From: liupei -Date: Tue, 28 Nov 2023 19:29:51 +0800 -Subject: [PATCH] fix the validation function of input for IOWait - ---- - agents/ocf/HealthIOWait.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/agents/ocf/HealthIOWait.in b/agents/ocf/HealthIOWait.in -index ba7a17a..6bc568e 100644 ---- a/agents/ocf/HealthIOWait.in -+++ b/agents/ocf/HealthIOWait.in -@@ -181,7 +181,7 @@ meta-data) meta_data - ;; - start) agent_start;; - stop) agent_stop;; --monitor) agent_monitor;; -+monitor) agent_validate && agent_monitor;; - validate-all) agent_validate;; - usage|help) agent_usage - exit $OCF_SUCCESS --- -2.33.1.windows.1 - diff --git a/pacemaker-0f7f88312.tar.gz b/pacemaker-0f7f88312.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..61c08600ee9e549db53a19d3516a9ce922131010 Binary files /dev/null and b/pacemaker-0f7f88312.tar.gz differ diff --git a/pacemaker-6fdc9deea.tar.gz b/pacemaker-6fdc9deea.tar.gz deleted file mode 100644 index 18e51f9d15ee12e0250c41b3b86b790ab0503f9e..0000000000000000000000000000000000000000 Binary files a/pacemaker-6fdc9deea.tar.gz and /dev/null differ diff --git a/pacemaker.spec b/pacemaker.spec index b46c92b00037659825927268a9dc487c670e1bfd..bcb7c0410c684d307b24c84343eeaed09c47ec10 100644 --- a/pacemaker.spec +++ b/pacemaker.spec @@ -16,11 +16,11 @@ ## Upstream pacemaker version, and its package version (specversion ## can be incremented to build packages reliably considered "newer" ## than previously built packages with the same pcmkversion) -%global pcmkversion 2.1.6 -%global specversion 12 +%global pcmkversion 2.1.7 +%global specversion 1 ## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build -%global commit 6fdc9deea294bbad629b003c6ae036aaed8e3ee0 +%global commit 0f7f88312f7a1ccedee60bf768aba79ee13d41e0 ## Since git v2.11, the extent of abbreviation is autoscaled by default ## (used to be constant of 7), so we need to convey it for non-tags, too. @@ -150,19 +150,6 @@ Url: https://www.clusterlabs.org/ Source0: https://codeload.github.com/%{github_owner}/%{name}/tar.gz/%{archive_github_url} Source1: https://codeload.github.com/%{github_owner}/%{nagios_name}/tar.gz/%{nagios_archive_github_url} -# https://github.com/ClusterLabs/pacemaker/pull/3177 -Patch0: 0001-Fix-glib-assertions.patch -Patch1: 0001-Add-the-parameter-of-dampening-and-fix-attrd_updater.patch -Patch2: 0001-Add-the-parameter-of-dampening-and-fix-attrd_updater-HealthIOWait.patch -Patch3: Fix-libcrmcommon-wait-for-reply-from-appropriate-con.patch -Patch4: Refactor-fencer-sleep-1s-between-reconnects.patch -Patch5: Fix-the-validation-function-of-input.patch -Patch6: Fix-a-bug-in-clone-resource-description-display.patch -Patch7: Fix-controller-not-check-watchdog-fencing-status.patch -Patch8: fix-the-validation-function-of-input-for-IOWait.patch -Patch9: fix-HealthSMART-parameter-check.patch -Patch10: Modify-HealthCPU-HealthIOWait-HealthSmart-about-dampen-reload-validate.patch -# upstream commits Requires: resource-agents Requires: %{pkgname_pcmk_libs} = %{version}-%{release} @@ -210,7 +197,7 @@ BuildRequires: pam-devel BuildRequires: %{pkgname_gettext} >= 0.18 # Required for "make check" -BuildRequires: libcmocka-devel +BuildRequires: libcmocka-devel >= 1.1.0 BuildRequires: pkgconfig(systemd) @@ -502,14 +489,6 @@ find %{buildroot} -name '*.la' -type f -print0 | xargs -0 rm -f rm -f %{buildroot}/%{_sbindir}/fence_legacy rm -f %{buildroot}/%{_mandir}/man8/fence_legacy.* -# Byte-compile Python sources where suitable and the distro procedures known -%if %{defined py_byte_compile} -%{py_byte_compile %{python_path} %{buildroot}%{_datadir}/pacemaker/tests} -%if !%{defined _python_bytecompile_extra} -%{py_byte_compile %{python_path} %{buildroot}%{python_site}/cts} -%endif -%endif - %post %systemd_post pacemaker.service @@ -595,7 +574,6 @@ exit 0 %exclude %{_sbindir}/pacemaker_remoted %{_libexecdir}/pacemaker/* -%{_sbindir}/crm_master %{_sbindir}/fence_watchdog %doc %{_mandir}/man7/pacemaker-controld.* @@ -603,7 +581,6 @@ exit 0 %doc %{_mandir}/man7/pacemaker-fenced.* %doc %{_mandir}/man7/ocf_pacemaker_controld.* %doc %{_mandir}/man7/ocf_pacemaker_remote.* -%doc %{_mandir}/man8/crm_master.* %doc %{_mandir}/man8/fence_watchdog.* %doc %{_mandir}/man8/pacemakerd.* @@ -634,6 +611,7 @@ exit 0 %{_sbindir}/crm_diff %{_sbindir}/crm_error %{_sbindir}/crm_failcount +%{_sbindir}/crm_master %{_sbindir}/crm_mon %{_sbindir}/crm_node %{_sbindir}/crm_resource @@ -669,7 +647,6 @@ exit 0 %exclude %{_mandir}/man7/ocf_pacemaker_o2cb.* %exclude %{_mandir}/man7/ocf_pacemaker_remote.* %doc %{_mandir}/man8/crm*.8.gz -%exclude %{_mandir}/man8/crm_master.* %doc %{_mandir}/man8/attrd_updater.* %doc %{_mandir}/man8/cibadmin.* %if %{with cibsecrets} @@ -738,7 +715,6 @@ exit 0 %license licenses/CC-BY-SA-4.0 %files cts -%{python_site}/cts %{python3_sitelib}/pacemaker/_cts/ %{_datadir}/pacemaker/tests @@ -781,6 +757,9 @@ exit 0 %license %{nagios_name}-%{nagios_hash}/COPYING %changelog +* Tue Jan 02 2024 Paul Thomas - 2.1.7-1 +- update to version 2.1.7 + * Tue Dec 12 2023 liupei - 2.1.6-12 - Modify HealthCPU HealthIOWait HealthSmart about dampen, reload, and validate