|
|
60de42 |
From 52153c502ad12c723231f5c7cb80d50a5d0691cd Mon Sep 17 00:00:00 2001
|
|
|
60de42 |
From: aravind-kumar <karavindkumar1993@gmail.com>
|
|
|
60de42 |
Date: Wed, 15 Mar 2017 22:46:42 +0530
|
|
|
60de42 |
Subject: [PATCH] new cluster option stonith-max-attempts with default value
|
|
|
60de42 |
10, number of retry attempts to be made before giving up
|
|
|
60de42 |
|
|
|
60de42 |
---
|
|
|
60de42 |
crmd/te_callbacks.c | 14 +++++++++++++-
|
|
|
60de42 |
crmd/te_callbacks.h | 2 ++
|
|
|
60de42 |
2 files changed, 31 insertions(+), 1 deletion(-)
|
|
|
60de42 |
|
|
|
60de42 |
diff --git a/crmd/te_callbacks.c b/crmd/te_callbacks.c
|
|
|
60de42 |
index 4c86bde..ff0a664 100644
|
|
|
60de42 |
--- a/crmd/te_callbacks.c
|
|
|
60de42 |
+++ b/crmd/te_callbacks.c
|
|
|
60de42 |
@@ -37,6 +37,8 @@ gboolean shuttingdown = FALSE;
|
|
|
60de42 |
crm_graph_t *transition_graph;
|
|
|
60de42 |
crm_trigger_t *transition_trigger = NULL;
|
|
|
60de42 |
|
|
|
60de42 |
+static unsigned long int stonith_max_attempts = 10;
|
|
|
60de42 |
+
|
|
|
60de42 |
/* #define rsc_op_template "//"XML_TAG_DIFF_ADDED"//"XML_TAG_CIB"//"XML_CIB_TAG_STATE"[@uname='%s']"//"XML_LRM_TAG_RSC_OP"[@id='%s]" */
|
|
|
60de42 |
#define rsc_op_template "//"XML_TAG_DIFF_ADDED"//"XML_TAG_CIB"//"XML_LRM_TAG_RSC_OP"[@id='%s']"
|
|
|
60de42 |
|
|
|
60de42 |
@@ -53,6 +55,16 @@ get_node_id(xmlNode * rsc_op)
|
|
|
60de42 |
return ID(node);
|
|
|
60de42 |
}
|
|
|
60de42 |
|
|
|
60de42 |
+void
|
|
|
60de42 |
+update_stonith_max_attempts(const char* value)
|
|
|
60de42 |
+{
|
|
|
60de42 |
+ if (safe_str_eq(value, INFINITY_S)) {
|
|
|
60de42 |
+ stonith_max_attempts = node_score_infinity;
|
|
|
60de42 |
+ }
|
|
|
60de42 |
+ else {
|
|
|
60de42 |
+ stonith_max_attempts = crm_int_helper(value, NULL);
|
|
|
60de42 |
+ }
|
|
|
60de42 |
+}
|
|
|
60de42 |
static void
|
|
|
60de42 |
te_legacy_update_diff(const char *event, xmlNode * diff)
|
|
|
60de42 |
{
|
|
|
60de42 |
@@ -637,7 +649,7 @@ too_many_st_failures(void)
|
|
|
60de42 |
|
|
|
60de42 |
g_hash_table_iter_init(&iter, stonith_failures);
|
|
|
60de42 |
while (g_hash_table_iter_next(&iter, (gpointer *) & key, (gpointer *) & value)) {
|
|
|
60de42 |
- if (value->count > 10) {
|
|
|
60de42 |
+ if (value->count > stonith_max_attempts ) {
|
|
|
60de42 |
crm_notice("Too many failures to fence %s (%d), giving up", key, value->count);
|
|
|
60de42 |
return TRUE;
|
|
|
60de42 |
}
|
|
|
60de42 |
diff --git a/crmd/te_callbacks.h b/crmd/te_callbacks.h
|
|
|
60de42 |
index a87d72c..64a5cf5 100644
|
|
|
60de42 |
--- a/crmd/te_callbacks.h
|
|
|
60de42 |
+++ b/crmd/te_callbacks.h
|
|
|
60de42 |
@@ -33,4 +33,6 @@ extern void te_update_diff(const char *event, xmlNode * msg);
|
|
|
60de42 |
|
|
|
60de42 |
extern void tengine_stonith_callback(stonith_t * stonith, stonith_callback_data_t * data);
|
|
|
60de42 |
|
|
|
60de42 |
+void update_stonith_max_attempts(const char* value);
|
|
|
60de42 |
+
|
|
|
60de42 |
#endif
|