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

Lon Hohberger lhh at redhat.com
Tue Jan 29 21:42:32 UTC 2008


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);
 





More information about the Cluster-devel mailing list