From mboxrd@z Thu Jan 1 00:00:00 1970 From: lhh@sourceware.org Date: 3 May 2007 15:02:56 -0000 Subject: [Cluster-devel] cluster/rgmanager ChangeLog include/reslist.h ... Message-ID: <20070503150256.27023.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: cluster Branch: RHEL4 Changes by: lhh at sourceware.org 2007-05-03 15:02:48 Modified files: rgmanager : ChangeLog rgmanager/include: reslist.h rgmanager/make : defines.mk.input rgmanager/src/clulib: Makefile alloc.c clulog.c msgsimple.c vft.c rgmanager/src/daemons: groups.c rg_state.c rgmanager/src/daemons/tests: delta-test004-test005.expected delta-test005-test006.expected delta-test006-test007.expected delta-test007-test008.expected delta-test008-test009.expected delta-test009-test010.expected delta-test010-test011.expected delta-test011-test012.expected delta-test012-test013.expected delta-test013-test014.expected delta-test014-test015.expected delta-test015-test016.expected delta-test016-test017.expected test005.expected test006.expected test007.expected test008.expected test009.expected test010.expected test011.expected test012.expected test013.expected test014.expected test015.expected test016.expected test017.expected rgmanager/src/resources: fs.sh nfsclient.sh nfsexport.sh rgmanager/src/utils: clulog.c Added files: rgmanager/src/clulib: wrap_lock.c Log message: 2007-05-03 Lon Hohberger * Merge patch from Crosswalk development team: * Scott Cannata * Henry Harris * Leonard Maiorani * src/daemons/groups.c, rg_state.c: Apply patch from Andrey Mirkin to fix bug #237144; prevents exclusive services from being accidentally (or intentionally) being started on the same node * src/daemons/restree.c: Don't print (null) when an attr isn't inherited * src/daemons/reslist.c: Try all direct ancestors while performing run-time inheritance resolution #231521 * src/daemons/tests/*: Clean up test cases; don't look for (null) any more Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.5.2.24&r2=1.5.2.25 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/include/reslist.h.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.8.2.6&r2=1.8.2.7 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/make/defines.mk.input.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3&r2=1.3.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/wrap_lock.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=NONE&r2=1.1.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.2&r2=1.4.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/alloc.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3.2.4&r2=1.3.2.5 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/clulog.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.2.2.3&r2=1.2.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/msgsimple.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.1&r2=1.4.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/vft.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.7.2.7&r2=1.7.2.8 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/groups.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.8.2.18&r2=1.8.2.19 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_state.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.19&r2=1.4.2.20 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.1&r2=1.1.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test005.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test006.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test007.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test008.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test009.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test010.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test011.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test012.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test013.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test014.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test015.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test016.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test017.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.1&r2=1.1.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/fs.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.21&r2=1.4.2.22 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/nfsclient.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3.2.11&r2=1.3.2.12 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/nfsexport.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.5&r2=1.4.2.6 http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/utils/clulog.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.2&r2=1.1.2.3 --- cluster/rgmanager/ChangeLog 2006/11/03 16:26:18 1.5.2.24 +++ cluster/rgmanager/ChangeLog 2007/05/03 15:02:45 1.5.2.25 @@ -1,3 +1,21 @@ +2007-05-03 Lon Hohberger + * Merge patch from Crosswalk development team: + * Scott Cannata + * Henry Harris + * Leonard Maiorani + * src/daemons/groups.c, rg_state.c: Apply patch from Andrey + Mirkin to fix bug #237144; prevents exclusive services from + being accidentally (or intentionally) being started on the + same node + * src/daemons/restree.c: Don't print (null) when an attr + isn't inherited + * src/daemons/reslist.c: Try all direct ancestors while + performing run-time inheritance resolution #231521 + * src/daemons/tests/*: Clean up test cases; don't look for (null) + any more + +===== + 2006-11-03 Lon Hohberger * src/daemons/restree.c: Merge patch from Jeff Layton to instrument res_exec more closely. (#213246) --- cluster/rgmanager/include/reslist.h 2007/03/20 19:40:06 1.8.2.6 +++ cluster/rgmanager/include/reslist.h 2007/05/03 15:02:46 1.8.2.7 @@ -25,11 +25,6 @@ #include -#define RA_PRIMARY (1<<0) -#define RA_UNIQUE (1<<1) -#define RA_REQUIRED (1<<2) -#define RA_INHERIT (1<<3) - #define RF_INLINE (1<<0) #define RF_DEFINED (1<<1) #define RF_NEEDSTART (1<<2) /** Used when adding/changing resources */ @@ -70,11 +65,24 @@ #include +typedef enum { +/* +#define RA_PRIMARY (1<<0) +#define RA_UNIQUE (1<<1) +#define RA_REQUIRED (1<<2) +#define RA_INHERIT (1<<3) + */ + RA_PRIMARY = (1<<0), + RA_UNIQUE = (1<<1), + RA_REQUIRED= (1<<2), + RA_INHERIT = (1<<3), + RA_SPEC = (1<<4) +} ra_flag_t; + typedef struct _resource_attribute { - int ra_flags; - /* XXX possible alignment problem on ia64 */ char *ra_name; char *ra_value; + ra_flag_t ra_flags; } resource_attr_t; --- cluster/rgmanager/make/Attic/defines.mk.input 2004/10/27 20:26:22 1.3 +++ cluster/rgmanager/make/Attic/defines.mk.input 2007/05/03 15:02:46 1.3.2.1 @@ -32,3 +32,11 @@ # Default CFLAGS CFLAGS += -DSHAREDIR=\"@SHAREDIR@\" -Wall ${INCLUDE} + +# +# Wrappers around pthread_mutex / pthread_rwlock calls for deadlock +# detection (and other things) +# +#CFLAGS += -DSHAREDIR=\"/usr/share/cluster\" -Wall ${INCLUDE} -DWRAP_LOCKS -DMAX_DISPATCH_RETRIES=3 +#LDFLAGS += -Wl,-wrap,pthread_mutex_lock,-wrap,pthread_mutex_unlock,-wrap,pthread_rwlock_rdlock,-wrap,pthread_rwlock_wrlock,-wrap,pthread_rwlock_unlock + /cvs/cluster/cluster/rgmanager/src/clulib/wrap_lock.c,v --> standard output revision 1.1.2.1 --- cluster/rgmanager/src/clulib/wrap_lock.c +++ - 2007-05-03 15:02:50.265394000 +0000 @@ -0,0 +1,224 @@ +/* + Copyright Red Hat, Inc. 2007 + Copyright Crosswalk 2006-2007 + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 675 Mass Ave, Cambridge, + MA 02139, USA. +*/ +#ifdef WRAP_LOCKS +#include +#include +#include +#include +#include +#include +#include +#include + +int __real_pthread_mutex_lock(pthread_mutex_t *lock); +int +__wrap_pthread_mutex_lock(pthread_mutex_t *lock) +{ + int status; + struct timespec delay; + + while (1) { + status = __real_pthread_mutex_lock(lock); + + switch(status) { + case EDEADLK: + /* Already own it: Note the error, but continue */ + fprintf(stderr, "[%d] %s(%p): %s; continuing\n", + gettid(), + __FUNCTION__, lock, strerror(status)); + /* deliberate fallthrough */ + case 0: + return 0; + case EBUSY: + /* Try again */ + break; + default: + /* Other return codes */ + fprintf(stderr, "[%d] %s(%p): %s\n", gettid(), + __FUNCTION__, lock, strerror(status)); + raise(SIGSEGV); + /* EINVAL? */ + return 0; + } + + delay.tv_sec = 0; + delay.tv_nsec = 100000; + nanosleep(&delay, NULL); + } + + /* Not reached */ + return 0; +} + + +int __real_pthread_mutex_unlock(pthread_mutex_t *lock); +int +__wrap_pthread_mutex_unlock(pthread_mutex_t *lock) +{ + int status; + struct timespec delay; + + while (1) { + status = __real_pthread_mutex_unlock(lock); + + switch(status) { + case EPERM: + /* Don't own it: Note the error, but continue */ + fprintf(stderr, "[%d] %s(%p): %s; continuing\n", + gettid(), + __FUNCTION__, lock, strerror(status)); + /* deliberate fallthrough */ + case 0: + return 0; + default: + fprintf(stderr, "[%d] %s(%p): %s\n", gettid(), + __FUNCTION__, lock, strerror(status)); + raise(SIGSEGV); + return 0; + } + + delay.tv_sec = 0; + delay.tv_nsec = 100000; + nanosleep(&delay, NULL); + } + + /* Not reached */ + return 0; +} + + +int __real_pthread_rwlock_rdlock(pthread_rwlock_t *lock); +int +__wrap_pthread_rwlock_rdlock(pthread_rwlock_t *lock) +{ + int status; + struct timespec delay; + + while (1) { + status = __real_pthread_rwlock_rdlock(lock); + + switch(status) { + case EDEADLK: + /* Already own it: Note the error, but continue */ + fprintf(stderr, "[%d] %s(%p): %s; continuing\n", + gettid(), + __FUNCTION__, lock, strerror(status)); + /* deliberate fallthrough */ + case 0: + return 0; + case EBUSY: + /* Try again */ + break; + default: + /* Other return codes */ + fprintf(stderr, "[%d] %s(%p): %s\n", gettid(), + __FUNCTION__, lock, strerror(status)); + raise(SIGSEGV); + /* EINVAL? */ + return 0; + } + + delay.tv_sec = 0; + delay.tv_nsec = 100000; + nanosleep(&delay, NULL); + } + + /* Not reached */ + return 0; +} + + +int __real_pthread_rwlock_wrlock(pthread_rwlock_t *lock); +int +__wrap_pthread_rwlock_wrlock(pthread_rwlock_t *lock) +{ + int status; + struct timespec delay; + + while (1) { + status = __real_pthread_rwlock_wrlock(lock); + + switch(status) { + case EDEADLK: + /* Already own it: Note the error, but continue */ + fprintf(stderr, "[%d] %s(%p): %s; continuing\n", + gettid(), + __FUNCTION__, lock, strerror(status)); + /* deliberate fallthrough */ + case 0: + return 0; + case EBUSY: + /* Try again */ + break; + default: + /* Other return codes */ + fprintf(stderr, "[%d] %s(%p): %s\n", gettid(), + __FUNCTION__, lock, strerror(status)); + raise(SIGSEGV); + /* EINVAL? */ + return 0; + } + + delay.tv_sec = 0; + delay.tv_nsec = 100000; + nanosleep(&delay, NULL); + } + + /* Not reached */ + return 0; +} + + +int __real_pthread_rwlock_unlock(pthread_rwlock_t *lock); +int +__wrap_pthread_rwlock_unlock(pthread_rwlock_t *lock) +{ + int status; + struct timespec delay; + + while (1) { + status = __real_pthread_rwlock_unlock(lock); + + switch(status) { + case EPERM: + /* Don't own it: Note the error, but continue */ + fprintf(stderr, "[%d] %s(%p): %s; continuing\n", + gettid(), + __FUNCTION__, lock, strerror(status)); + /* deliberate fallthrough */ + case 0: + return 0; + default: + fprintf(stderr, "[%d] %s(%p): %s\n", gettid(), + __FUNCTION__, lock, strerror(status)); + raise(SIGSEGV); + return 0; + } + + delay.tv_sec = 0; + delay.tv_nsec = 100000; + nanosleep(&delay, NULL); + } + + /* Not reached */ + return 0; +} +#endif + --- cluster/rgmanager/src/clulib/Makefile 2005/01/25 17:22:42 1.4.2.2 +++ cluster/rgmanager/src/clulib/Makefile 2007/05/03 15:02:46 1.4.2.3 @@ -30,7 +30,7 @@ uninstall: libclulib.a: clulog.o daemon_init.o signals.o msgsimple.o \ - vft.o gettid.o rg_strings.o + vft.o gettid.o rg_strings.o wrap_lock.o ${AR} cru $@ $^ ranlib $@ --- cluster/rgmanager/src/clulib/alloc.c 2006/01/20 16:25:24 1.3.2.4 +++ cluster/rgmanager/src/clulib/alloc.c 2007/05/03 15:02:46 1.3.2.5 @@ -155,7 +155,11 @@ #ifndef NOPTHREADS #include +#ifdef WRAP_LOCKS +static pthread_mutex_t _alloc_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; +#else static pthread_mutex_t _alloc_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif /* WRAP_LOCKS */ #else #define pthread_mutex_trylock(x) (0) #define pthread_mutex_lock(x) --- cluster/rgmanager/src/clulib/clulog.c 2006/10/05 17:52:27 1.2.2.3 +++ cluster/rgmanager/src/clulib/clulog.c 2007/05/03 15:02:46 1.2.2.4 @@ -20,7 +20,7 @@ /** @file * Library routines for communicating with the logging daemon. * - * $Id: clulog.c,v 1.2.2.3 2006/10/05 17:52:27 lhh Exp $ + * $Id: clulog.c,v 1.2.2.4 2007/05/03 15:02:46 lhh Exp $ * * Author: Jeff Moyer */ @@ -50,7 +50,7 @@ #include -static const char *version __attribute__ ((unused)) = "$Revision: 1.2.2.3 $"; +static const char *version __attribute__ ((unused)) = "$Revision: 1.2.2.4 $"; #ifdef DEBUG #include @@ -70,7 +70,12 @@ static int syslog_facility = LOG_DAEMON; static char *daemon_name = NULL; static pid_t daemon_pid = -1; + +#ifdef WRAP_LOCKS +static pthread_mutex_t log_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; +#else static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif CODE logger_prioritynames[] = { {"emerg", LOG_EMERG}, --- cluster/rgmanager/src/clulib/msgsimple.c 2006/05/12 21:28:31 1.4.2.1 +++ cluster/rgmanager/src/clulib/msgsimple.c 2007/05/03 15:02:46 1.4.2.2 @@ -51,6 +51,8 @@ int msg_send_simple(int fd, int cmd, int arg1, int arg2) { + int status; + int my_errno; generic_msg_hdr msg; msg.gh_magic = GENERIC_HDR_MAGIC; @@ -60,7 +62,25 @@ msg.gh_arg2 = arg2; swab_generic_msg_hdr(&msg); - return msg_send(fd, (void *) &msg, sizeof (msg)); + my_errno = 0; + status = msg_send(fd, (void *) &msg, sizeof (msg)); + my_errno = errno; + + if (status <= 0) + { + /* + * Should never be the case since msg_send() is + * wrapped in a retry loop. Give one more try + * calling msg_send() for a few errnos, others, return + * error as they cannot and should not be retried. + */ + if ((my_errno == EINTR) || (my_errno == EAGAIN) || + (my_errno == ENOSPC)) { + status = msg_send(fd, (void *) &msg, sizeof (msg)); + } + } + + return (status); } @@ -95,7 +115,7 @@ fprintf(stderr, "fd%d peek: %d/%d bytes\n", fd, ret, (int)sizeof (generic_msg_hdr)); else if (ret == 0) - errno = EAGAIN; + errno = ECONNRESET; return -1; } @@ -110,7 +130,6 @@ * allocate enough memory to receive the header + diff buffer */ *buf = malloc(peek_msg.gh_length); - memset(*buf, 0, peek_msg.gh_length); if (!*buf) { fprintf(stderr, "%s: malloc: %s", __FUNCTION__, @@ -118,6 +137,8 @@ return -1; } + memset(*buf, 0, peek_msg.gh_length); + /* * Now, do the real receive. 2 second timeout, if none specified. */ --- cluster/rgmanager/src/clulib/vft.c 2006/12/13 18:19:56 1.7.2.7 +++ cluster/rgmanager/src/clulib/vft.c 2007/05/03 15:02:46 1.7.2.8 @@ -54,8 +54,13 @@ * TODO: We could make it thread safe, but this might be unnecessary work * Solution: Super-coarse-grained-bad-code-locking! */ +#ifdef WRAP_LOCKS +static pthread_mutex_t key_list_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; +static pthread_mutex_t vf_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; +#else static pthread_mutex_t key_list_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t vf_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif /* WRAP_LOCKS */ static pthread_t vf_thread = (pthread_t)-1; static int thread_ready = 0; static vf_vote_cb_t default_vote_cb = NULL; @@ -332,6 +337,7 @@ struct timeval tv; fd_set rfds; int nready, x; + int myerrno = 0; /* Set up for the select */ tv.tv_sec = timeout; @@ -351,12 +357,30 @@ FD_SET(peer_fds[x], &rfds); nready = select(MAX_FDS, &rfds, NULL, NULL, &tv); - if (nready <= -1) { - if (nready == 0) - printf("VF Abort: Timed out!\n"); - else - printf("VF Abort: %s\n", - strerror(errno)); + + /* + * fix, rhat erroneous check of nready==0 and + * not retrying on EINTR. + */ + if (nready < 0) + { + myerrno = errno; + fprintf(stderr, "VF Abort: %s\n", strerror(myerrno)); + + if (myerrno == EINTR) { + tv.tv_sec = timeout; + tv.tv_usec = 0; + continue; + } + + errno = myerrno; + return 0; + } + + if (nready == 0) { + fprintf(stderr, + "VF Abort: Timed out!\n"); + return 0; } @@ -768,8 +792,13 @@ if (!fp) return -1; +#if defined(__sparc__) || defined(__hppa__) || defined(__sparc64__) || defined (__hppa64__) + rv = fscanf(fp,"%ld.%d %ld.%d\n", &tv->tv_sec, &tv->tv_usec, + &junk.tv_sec, &junk.tv_usec); +#else rv = fscanf(fp,"%ld.%ld %ld.%ld\n", &tv->tv_sec, &tv->tv_usec, &junk.tv_sec, &junk.tv_usec); +#endif fclose(fp); if (rv != 4) { @@ -830,6 +859,15 @@ free(key_node->kn_data); key_node->kn_datalen = vnp->vn_datalen; key_node->kn_data = malloc(vnp->vn_datalen); + + /* + * Need to check return of malloc always + */ + if (key_node->kn_data == NULL) { + fprintf (stderr, "malloc fail err=%d\n", errno); + return -1; + } + memcpy(key_node->kn_data, vnp->vn_data, vnp->vn_datalen); free(vnp); @@ -844,15 +882,42 @@ struct timeval tv; fd_set rfds; generic_msg_hdr *hdrp = NULL; + int myerrno = 0; - FD_ZERO(&rfds); - max = msg_fill_fdset(&rfds, MSG_ALL, MSGP_VFS); + while (1) { + FD_ZERO(&rfds); + max = msg_fill_fdset(&rfds, MSG_ALL, MSGP_VFS); - tv.tv_sec = 1; - tv.tv_usec = 0; - nready = select(max + 1, &rfds, NULL, NULL, &tv); - if (nready <= 0) - return; + tv.tv_sec = 1; + tv.tv_usec = 0; + + nready = select(max + 1, &rfds, NULL, NULL, &tv); + if (nready < 0) + { + myerrno = errno; +#ifdef NOT_NOW + /* + * i think red hat wants to return w/ EINTR + */ + if (myerrno == EINTR) + { + continue; + } +#endif /* NOT_NOW */ + + errno = myerrno; + return; + } + + if (nready == 0) { + return; + } + + /* + * positive return value, break and process. + */ + break; + } while (nready) { fd = msg_next_fd(&rfds); @@ -970,6 +1035,12 @@ } va = malloc(sizeof(*va)); + + if (va == NULL) { + fprintf (stderr, "vf_init: malloc fail2 err=%d\n", errno); + return -1; + } + va->local_node_id = my_node_id; va->port = my_port; @@ -1071,6 +1142,13 @@ } newnode = malloc(sizeof(*newnode)); + + if (newnode == NULL) { + fprintf(stderr, "malloc fail3 err=%d\n", errno); + pthread_mutex_unlock(&key_list_mutex); + return -1; + } + newnode->kn_data = NULL; memset(newnode,0,sizeof(*newnode)); newnode->kn_keyid = strdup(keyid); @@ -1178,6 +1256,8 @@ void *lockp = NULL; int l; char lock_name[256]; + int my_status; + int ret_status = 0; if (!data || !datalen || !keyid || !strlen(keyid) || !membership) return -1; @@ -1187,7 +1267,6 @@ snprintf(lock_name, sizeof(lock_name), "usrm::vf"); l = clu_lock(lock_name, CLK_EX, &lockp); if (l < 0) { - clu_unlock(lock_name, lockp); pthread_mutex_unlock(&vf_mutex); return l; } @@ -1196,6 +1275,7 @@ count = sizeof(int) * (membership->cml_count + 1); peer_fds = malloc(count); if(!peer_fds) { + clu_unlock(lock_name, lockp); pthread_mutex_unlock(&vf_mutex); return -1; } @@ -1240,13 +1320,13 @@ goto retry_top; if (flags & VFF_IGN_CONN_ERRORS) continue; + close_all(peer_fds); free(peer_fds); clu_unlock(lock_name, lockp); pthread_mutex_unlock(&vf_mutex); return -1; } - ++y; } @@ -1289,19 +1369,30 @@ */ for (x = 0; peer_fds[x] != -1; x++) { - if (msg_send(peer_fds[x], join_view, totallen) != totallen) { - vf_send_abort(peer_fds); - close_all(peer_fds); - - free(join_view); - clu_unlock(lock_name, lockp); - pthread_mutex_unlock(&vf_mutex); - return -1; - } + /* + * Still send msg to everyone, but then close + * all peers fds and cleanup - TBD JSC + */ + my_status = msg_send(peer_fds[x], join_view, totallen); + if (my_status != totallen) { + ret_status = -1; + } remain++; } + /* + * Now cleanup + */ + if (ret_status == -1) { + vf_send_abort(peer_fds); + close_all(peer_fds); + free(join_view); + clu_unlock(lock_name, lockp); + pthread_mutex_unlock(&vf_mutex); + return -1; + } + #ifdef DEBUG printf("VF: Checking for consensus...\n"); #endif @@ -1524,7 +1615,6 @@ snprintf(lock_name, sizeof(lock_name), "usrm::vf"); l = clu_lock(lock_name, CLK_EX, &lockp); if (l < 0) { - clu_unlock(lock_name, lockp); pthread_mutex_unlock(&vf_mutex); printf("Couldn't lock %s\n", keyid); return l; --- cluster/rgmanager/src/daemons/groups.c 2006/11/27 22:21:30 1.8.2.18 +++ cluster/rgmanager/src/daemons/groups.c 2007/05/03 15:02:47 1.8.2.19 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -132,6 +133,106 @@ } +int get_rg_state_local(char *, rg_state_t *); +int +count_resource_groups_local(cluster_member_t *mp) +{ + resource_t *res; + char *rgname, *val; + rg_state_t st; + + mp->cm_svccount = 0; + mp->cm_svcexcl = 0; + + pthread_rwlock_rdlock(&resource_lock); + + list_do(&_resources, res) { + if (res->r_rule->rr_root == 0) + continue; + + rgname = res->r_attrs[0].ra_value; + + if (get_rg_state_local(rgname, &st) < 0) { + continue; + } + + if (st.rs_state != RG_STATE_STARTED && + st.rs_state != RG_STATE_STARTING) + continue; + + if (mp->cm_id != st.rs_owner) + continue; + + ++mp->cm_svccount; + + val = res_attr_value(res, "exclusive"); + if (val && ((!strcmp(val, "yes") || + (atoi(val)>0))) ) { + ++mp->cm_svcexcl; + } + + } while (!list_done(&_resources, res)); + + pthread_rwlock_unlock(&resource_lock); + + return 0; +} + + +int +have_exclusive_resources() +{ + resource_t *res; + char *val; + + pthread_rwlock_rdlock(&resource_lock); + + list_do(&_resources, res) { + val = res_attr_value(res, "exclusive"); + if (val && ((!strcmp(val, "yes") || + (atoi(val)>0))) ) { + pthread_rwlock_unlock(&resource_lock); + return 1; + } + + } while (!list_done(&_resources, res)); + + pthread_rwlock_unlock(&resource_lock); + + return 0; +} + + +int +check_exclusive_resources(cluster_member_list_t *membership, char *svcName) +{ + cluster_member_t *mp; + int exclusive, count; + resource_t *res; + char *val; + + mp = memb_id_to_p(membership, my_id()); + assert(mp); + count_resource_groups_local(mp); + exclusive = mp->cm_svcexcl; + count = mp->cm_svccount; + pthread_rwlock_rdlock(&resource_lock); + res = find_root_by_ref(&_resources, svcName); + if (!res) { + pthread_rwlock_unlock(&resource_lock); + return FAIL; + } + val = res_attr_value(res, "exclusive"); + pthread_rwlock_unlock(&resource_lock); + if (exclusive || (count && val && + (!strcmp(val, "yes") || (atoi(val)>0)))) { + return 1; + } + + return 0; +} + + /** Find the best target node for a service *besides* the current service owner. Takes into account: @@ -576,7 +677,6 @@ @param rgname Resource group name whose state we want to send. @see send_rg_states */ -int get_rg_state_local(char *, rg_state_t *); void send_rg_state(int fd, char *rgname, int fast) { --- cluster/rgmanager/src/daemons/rg_state.c 2007/02/20 19:52:36 1.4.2.19 +++ cluster/rgmanager/src/daemons/rg_state.c 2007/05/03 15:02:47 1.4.2.20 @@ -41,6 +41,8 @@ int set_rg_state(char *servicename, rg_state_t *svcblk); int get_rg_state(char *servicename, rg_state_t *svcblk); void get_recovery_policy(char *rg_name, char *buf, size_t buflen); +int have_exclusive_resources(); +int check_exclusive_resources(cluster_member_list_t *membership, char *svcName); uint64_t @@ -603,6 +605,10 @@ ret = 1; break; } + if (req == RG_START_RECOVER) { + ret = 1; + break; + } clulog(LOG_DEBUG, "Not starting disabled RG %s\n", svcName); @@ -1308,6 +1314,7 @@ } +pthread_mutex_t exclusive_mutex = PTHREAD_MUTEX_INITIALIZER; /** * handle_start_req - Handle a generic start request from a user or during * service manager boot. @@ -1323,6 +1330,7 @@ { int ret, tolerance = FOD_BEST; cluster_member_list_t *membership = member_list(); + int need_check = have_exclusive_resources(); /* * When a service request is from a user application (eg, clusvcadm), @@ -1338,6 +1346,18 @@ cml_free(membership); return FAIL; } + if (need_check) { + pthread_mutex_lock(&exclusive_mutex); + ret = check_exclusive_resources(membership, svcName); + if (ret != 0) { + cml_free(membership); + pthread_mutex_unlock(&exclusive_mutex); + if (ret > 0) + goto relocate; + else + return FAIL; + } + } cml_free(membership); /* @@ -1345,6 +1365,8 @@ * mask here - so that we can try all nodes if necessary. */ ret = svc_start(svcName, req); + if (need_check) + pthread_mutex_unlock(&exclusive_mutex); /* If services are locked, return the error @@ -1384,6 +1406,7 @@ return RG_EABORT; } +relocate: /* * OK, it failed to start - but succeeded to stop. Now, * we should relocate the service. @@ -1421,6 +1444,7 @@ int x; uint64_t me = my_id(); cluster_member_list_t *membership = member_list(); + int need_check = have_exclusive_resources(); /* XXX ok, so we need to say "should I start this if I was the only cluster member online */ @@ -1441,9 +1465,19 @@ cml_free(membership); return FAIL; } + if (need_check) { + pthread_mutex_lock(&exclusive_mutex); + if (check_exclusive_resources(membership, svcName) != 0) { + pthread_mutex_unlock(&exclusive_mutex); + cml_free(membership); + return FAIL; + } + } cml_free(membership); x = svc_start(svcName, req); + if (need_check) + pthread_mutex_unlock(&exclusive_mutex); if (x == 0) return 0; if (x == RG_ERUN) --- cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected 2007/05/03 15:02:47 1.1.2.4 @@ -49,7 +49,6 @@ ip [ NEEDSTART ] { address = "192.168.1.2"; monitor_link = "1"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected 2007/05/03 15:02:47 1.1.2.4 @@ -48,7 +48,6 @@ ip [ NEEDSTOP ] { address = "192.168.1.2"; monitor_link = "1"; - nfslock = "(null)"; } script { name = "initscript"; @@ -62,7 +61,6 @@ ip [ NEEDSTART ] { address = "192.168.1.2"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected 2007/05/03 15:02:47 1.1.2.4 @@ -48,7 +48,6 @@ ip [ NEEDSTOP ] { address = "192.168.1.2"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -62,7 +61,6 @@ ip [ NEEDSTART ] { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected 2007/05/03 15:02:47 1.1.2.4 @@ -58,7 +58,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -72,7 +71,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected 2007/05/03 15:02:47 1.1.2.4 @@ -68,7 +68,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -84,12 +83,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected 2007/05/03 15:02:47 1.1.2.4 @@ -79,12 +79,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -100,12 +98,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected 2007/05/03 15:02:47 1.1.2.4 @@ -138,12 +138,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -159,27 +157,20 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport [ NEEDSTART ] { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -187,7 +178,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected 2007/05/03 15:02:47 1.1.2.4 @@ -188,27 +188,20 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -216,7 +209,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -232,35 +224,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient [ NEEDSTART ] { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -268,7 +251,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected 2007/05/03 15:02:47 1.1.2.4 @@ -188,35 +188,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient [ NEEDSTOP ] { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -224,7 +215,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -240,35 +230,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient [ NEEDSTART ] { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -276,7 +257,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected 2007/05/03 15:02:47 1.1.2.4 @@ -212,35 +212,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -248,7 +239,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -264,35 +254,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -300,7 +281,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -315,35 +295,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -351,7 +322,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected 2007/05/03 15:02:47 1.1.2.4 @@ -236,35 +236,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient [ NEEDSTOP ] { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -272,7 +263,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -287,35 +277,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient [ NEEDSTOP ] { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -323,7 +304,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -339,35 +319,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient [ NEEDSTART ] { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -375,7 +346,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -390,35 +360,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient [ NEEDSTART ] { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -426,7 +387,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected 2007/05/03 15:02:47 1.1.2.4 @@ -237,35 +237,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -273,7 +264,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -288,35 +278,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -324,7 +305,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -340,35 +320,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -376,7 +347,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -391,35 +361,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -427,7 +388,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected 2007/03/22 23:16:43 1.1.2.1 +++ cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected 2007/05/03 15:02:47 1.1.2.2 @@ -251,35 +251,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -287,7 +278,6 @@ ip [ NEEDSTOP ] { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -302,35 +292,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -338,7 +319,6 @@ ip [ NEEDSTOP ] { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -354,35 +334,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -402,42 +373,32 @@ ip [ NEEDSTART ] { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } fs [ NEEDSTART ] { name = "mount2"; mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -445,12 +406,10 @@ script [ NEEDSTART ] { name = "script2"; file = "/etc/init.d/script2"; - service_name = "(null)"; } ip [ NEEDSTART ] { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } } script [ NEEDSTART ] { --- cluster/rgmanager/src/daemons/tests/test005.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test005.expected 2007/05/03 15:02:47 1.1.2.4 @@ -26,7 +26,6 @@ ip { address = "192.168.1.2"; monitor_link = "1"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test006.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test006.expected 2007/05/03 15:02:47 1.1.2.4 @@ -26,7 +26,6 @@ ip { address = "192.168.1.2"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test007.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test007.expected 2007/05/03 15:02:47 1.1.2.4 @@ -26,7 +26,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test008.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test008.expected 2007/05/03 15:02:47 1.1.2.4 @@ -36,7 +36,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test009.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test009.expected 2007/05/03 15:02:47 1.1.2.4 @@ -38,12 +38,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test010.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test010.expected 2007/05/03 15:02:47 1.1.2.4 @@ -47,12 +47,10 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; } ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test011.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test011.expected 2007/05/03 15:02:47 1.1.2.4 @@ -97,27 +97,20 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -125,7 +118,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test012.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test012.expected 2007/05/03 15:02:47 1.1.2.4 @@ -97,35 +97,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } } @@ -133,7 +124,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test013.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test013.expected 2007/05/03 15:02:47 1.1.2.4 @@ -97,35 +97,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -133,7 +124,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test014.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test014.expected 2007/05/03 15:02:47 1.1.2.4 @@ -121,35 +121,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -157,7 +148,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -172,35 +162,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "ro"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -208,7 +189,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test015.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test015.expected 2007/05/03 15:02:47 1.1.2.4 @@ -121,35 +121,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -157,7 +148,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -172,35 +162,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -208,7 +189,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test016.expected 2007/03/20 19:40:06 1.1.2.3 +++ cluster/rgmanager/src/daemons/tests/test016.expected 2007/05/03 15:02:47 1.1.2.4 @@ -122,35 +122,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -158,7 +149,6 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; @@ -173,35 +163,26 @@ mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -209,7 +190,6 @@ ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } script { name = "initscript"; --- cluster/rgmanager/src/daemons/tests/test017.expected 2007/03/22 23:16:43 1.1.2.1 +++ cluster/rgmanager/src/daemons/tests/test017.expected 2007/05/03 15:02:47 1.1.2.2 @@ -135,35 +135,26 @@ mountpoint = "/mnt/cluster"; device = "/dev/sdb8"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb8"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -183,42 +174,32 @@ ip { address = "192.168.1.3"; monitor_link = "yes"; - nfslock = "(null)"; } fs { name = "mount2"; mountpoint = "/mnt/cluster2"; device = "/dev/sdb9"; fstype = "ext3"; - nfslock = "(null)"; nfsexport { name = "Dummy Export"; device = "/dev/sdb9"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; nfsclient { name = "Admin group"; target = "@admin"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } nfsclient { name = "User group"; target = "@users"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw,sync"; } nfsclient { name = "red"; target = "red"; path = "/mnt/cluster2"; - fsid = "(null)"; - nfslock = "(null)"; options = "rw"; } } @@ -226,12 +207,10 @@ script { name = "script2"; file = "/etc/init.d/script2"; - service_name = "(null)"; } ip { address = "192.168.1.4"; monitor_link = "yes"; - nfslock = "(null)"; } } script { --- cluster/rgmanager/src/resources/fs.sh 2007/02/15 22:46:00 1.4.2.21 +++ cluster/rgmanager/src/resources/fs.sh 2007/05/03 15:02:47 1.4.2.22 @@ -145,7 +145,7 @@ - + If set and unmounting the file system fails, the node will try to kill lockd and issue reclaims across all remaining --- cluster/rgmanager/src/resources/nfsclient.sh 2007/02/21 20:54:51 1.3.2.11 +++ cluster/rgmanager/src/resources/nfsclient.sh 2007/05/03 15:02:47 1.3.2.12 @@ -95,7 +95,7 @@ - + This tells us whether the service in question has the NFS lock workarounds enabled. If so, we always unexport --- cluster/rgmanager/src/resources/nfsexport.sh 2006/06/16 19:57:52 1.4.2.5 +++ cluster/rgmanager/src/resources/nfsexport.sh 2007/05/03 15:02:47 1.4.2.6 @@ -98,7 +98,7 @@ - + If you can see this, your GUI is broken. This inherits an unspecified nfslock parameter so that --- cluster/rgmanager/src/utils/clulog.c 2006/08/18 20:35:14 1.1.2.2 +++ cluster/rgmanager/src/utils/clulog.c 2007/05/03 15:02:47 1.1.2.3 @@ -123,6 +123,12 @@ /* Add two bytes for linefeed and NULL terminator */ len = strlen(argv[argc-1]) + 2; logmsg = (char*)malloc(strlen(argv[argc-1])+2); + if (logmsg == NULL) { + fprintf(stderr, + "clulog: malloc fail err=%d\n", errno); + exit(0); + } + snprintf(logmsg, len, "%s\n", argv[argc-1]); if (!cmdline_loglevel) {