From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lon Hohberger Date: Tue, 29 Jan 2008 16:42:32 -0500 Subject: [Cluster-devel] [PATCH] Make fenced's retry time configurable; Message-ID: <1201642952.15818.31.camel@ayanami.boston.devel.redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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);