[Cluster-devel] [PATCH] Make fenced's retry time configurable;

Lon Hohberger <[email protected]>
Newsgroups com.redhat.cluster-devel
Message-ID <[email protected]>
As seen here:

https://bugzilla.redhat.com/show_bug.cgi?id=418531

Index: fenced/fd.h
===================================================================
RCS file: /cvs/cluster/cluster/fence/fenced/fd.h,v
retrieving revision 1.27
diff -u -r1.27 fd.h
--- fenced/fd.h	26 Oct 2007 20:36:49 -0000	1.27
+++ fenced/fd.h	29 Jan 2008 21:39:16 -0000
@@ -132,12 +132,15 @@
 {
 	int post_join_delay;
 	int post_fail_delay;
+	int retry_time;
+	int pad;
 	char *override_path;
 	int8_t clean_start;
 	int8_t post_join_delay_opt;
 	int8_t post_fail_delay_opt;
 	int8_t clean_start_opt;
 	int8_t override_path_opt;
+	int8_t retry_time_opt;
 };
 
 #define FDFL_RUN        (0)
Index: fenced/main.c
===================================================================
RCS file: /cvs/cluster/cluster/fence/fenced/main.c,v
retrieving revision 1.46
diff -u -r1.46 main.c
--- fenced/main.c	7 Jan 2008 05:52:28 -0000	1.46
+++ fenced/main.c	29 Jan 2008 21:39:16 -0000
@@ -15,7 +15,7 @@
 #include "ccs.h"
 #include "copyright.cf"
 
-#define OPTION_STRING			("cj:f:Dn:O:hVS")
+#define OPTION_STRING			("cj:f:Dn:O:R:hVS")
 #define LOCKFILE_NAME			"/var/run/fenced.pid"
 
 struct client {
@@ -162,6 +162,20 @@
 			free(str);
 	}
 
+	if (comline.retry_time_opt == FALSE) {
+		str = NULL;
+		memset(path, 0, 256);
+		sprintf(path, "/cluster/fence_daemon/@retry_time");
+
+		error = ccs_get(cd, path, &str);
+		if (!error && str)
+			comline.retry_time = atoi(str);
+		if (str)
+			free(str);
+		if (comline.retry_time < 3)
+			comline.retry_time = 3;
+	}
+
 	log_debug("delay post_join %ds post_fail %ds",
 		  comline.post_join_delay, comline.post_fail_delay);
 
@@ -576,6 +590,8 @@
 	comline->post_join_delay_opt = FALSE;
 	comline->post_fail_delay_opt = FALSE;
 	comline->clean_start_opt = FALSE;
+	comline->retry_time_opt = FALSE;
+	comline->retry_time = 5;	/* default */
 
 	while (cont) {
 		optchar = getopt(argc, argv, OPTION_STRING);
@@ -602,6 +618,13 @@
 			comline->override_path_opt = TRUE;
 			break;
 
+		case 'R':
+			comline->retry_time = atoi(optarg);
+			if (comline->retry_time < 3)
+				comline->retry_time = 3;
+			comline->retry_time_opt = TRUE;
+			break;
+
 		case 'D':
 			daemon_debug_opt = TRUE;
 			break;
Index: fenced/recover.c
===================================================================
RCS file: /cvs/cluster/cluster/fence/fenced/recover.c,v
retrieving revision 1.30
diff -u -r1.30 recover.c
--- fenced/recover.c	26 Oct 2007 20:36:49 -0000	1.30
+++ fenced/recover.c	29 Jan 2008 21:39:16 -0000
@@ -402,7 +402,8 @@
 
 		/* Check for manual intervention */
 		override = open_override(comline.override_path);
-		if (check_override(override, node->name, 5) > 0) {
+		if (check_override(override, node->name,
+				   comline.retry_time) > 0) {
 			syslog(LOG_WARNING, "fence \"%s\" overridden by "
 			       "administrator intervention", node->name);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.