CVSROOT: /cvs/cluster Module name: cluster Changes by: [EMAIL PROTECTED] 2008-01-30 19:20:11
Modified files: fence/fenced : fd.h main.c recover.c fence/man : fenced.8 Log message: Make fenced's override wait time configurable. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/fd.h.diff?cvsroot=cluster&r1=1.27&r2=1.28 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/main.c.diff?cvsroot=cluster&r1=1.46&r2=1.47 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/fenced/recover.c.diff?cvsroot=cluster&r1=1.30&r2=1.31 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/man/fenced.8.diff?cvsroot=cluster&r1=1.7&r2=1.8 --- cluster/fence/fenced/fd.h 2007/10/26 20:36:49 1.27 +++ cluster/fence/fenced/fd.h 2008/01/30 19:20:11 1.28 @@ -132,12 +132,15 @@ { int post_join_delay; int post_fail_delay; + int override_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 override_time_opt; }; #define FDFL_RUN (0) --- cluster/fence/fenced/main.c 2008/01/07 05:52:28 1.46 +++ cluster/fence/fenced/main.c 2008/01/30 19:20:11 1.47 @@ -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:T:hVS") #define LOCKFILE_NAME "/var/run/fenced.pid" struct client { @@ -162,6 +162,20 @@ free(str); } + if (comline.override_time_opt == FALSE) { + str = NULL; + memset(path, 0, 256); + sprintf(path, "/cluster/fence_daemon/@override_time"); + + error = ccs_get(cd, path, &str); + if (!error && str) + comline.override_time = atoi(str); + if (str) + free(str); + if (comline.override_time < 3) + comline.override_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->override_time_opt = FALSE; + comline->override_time = 5; /* default */ while (cont) { optchar = getopt(argc, argv, OPTION_STRING); @@ -602,6 +618,13 @@ comline->override_path_opt = TRUE; break; + case 'R': + comline->override_time = atoi(optarg); + if (comline->override_time < 3) + comline->override_time = 3; + comline->override_time_opt = TRUE; + break; + case 'D': daemon_debug_opt = TRUE; break; --- cluster/fence/fenced/recover.c 2007/10/26 20:36:49 1.30 +++ cluster/fence/fenced/recover.c 2008/01/30 19:20:11 1.31 @@ -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.override_time) > 0) { syslog(LOG_WARNING, "fence \"%s\" overridden by " "administrator intervention", node->name); --- cluster/fence/man/fenced.8 2007/08/17 18:26:16 1.7 +++ cluster/fence/man/fenced.8 2008/01/30 19:20:11 1.8 @@ -143,6 +143,12 @@ <fence_daemon override_path="/var/run/cluster/fenced_override"/> +Override-time is the amount of time to wait for administrator intervention +after fencing has failed. The default is 5 seconds. + + <fence_daemon override_time="10"/> + + .SS Per-node fencing settings The per-node fencing configuration can become complex and is largely @@ -273,7 +279,11 @@ All nodes are in a clean state to start. .TP \fB-O\fP -Path of the override fifo. +Path of the override FIFO. +.TP +\fB-T\fP +Amount of time to wait for administrator intervention after +fencing has failed, in seconds. .TP \fB-D\fP Enable debugging code and don't fork into the background.