[Linux-cluster] [PATCH 0/4] fence

David Teigland teigland at redhat.com
Fri Feb 18 04:01:35 UTC 2005


On Thu, Feb 17, 2005 at 07:35:34PM +0100, Bastian Blank wrote:
> Patches:
> 1. Use bools instead of crude defines.

Interesting, but I think I still prefer using int's and defines.  I like
the option of doing other things (-1/0/1) even if we're only doing T/F
now.  Also, there's no /usr/include/stdbool.h on my machine.

> 2. Remove GNU-isms.

You'll have to pardon my ignorance about GNU-isms; could you explain the
shortcoming of the current method, or point me to a discussion?  The
existing code looks nicer to me, but I'm happy to learn something new.

For reference, existing:

#define die(fmt, args...) \
do \
{ \
	fprintf(stderr, "%s: ", prog_name); \
	fprintf(stderr, fmt "\n", ##args); \
	syslog(LOG_ERR, fmt, ##args); \
	exit(EXIT_FAILURE); \
} \
while (0)

patch does:

static inline void die(const char *fmt, ...)
{
	va_list ap;
	fputs(prog_name, stderr);
	fputs(": ", stderr);
	va_start(ap, fmt);
	vfprintf(stderr, fmt, ap);
	fputs("\n", stderr);
	vsyslog(LOG_ERR, fmt, ap);
	va_end(ap);
	exit(EXIT_FAILURE);
}


> 3. Add option to fence_tool to not wait for quorum.

ok

> 4. Wait for the join complete event in fenced.

I'd really like to keep all the "usability-oriented" stuff in fence_tool
and out of fenced.  It would probably be better if the poll-end of the new
pipe was in fence_tool.

Or, I just thought of another method.  fence_tool's -w handling could
could read fenced's unix socket and wait until it sees "finish:".  See
fence_tool.c:do_monitor().  do_monitor("finish:") would return when it
sees a line matching "finish:".

We could also use this method to allow "fence_tool leave -w".

-- 
Dave Teigland  <teigland at redhat.com>




More information about the Linux-cluster mailing list