rpms/openais/devel revision-1173.patch, NONE, 1.1 revision-1179.patch, NONE, 1.1 revision-1180.patch, NONE, 1.1 revision-1181.patch, NONE, 1.1 revision-1182.patch, NONE, 1.1 revision-1183.patch, NONE, 1.1 revision-1184.patch, NONE, 1.1 revision-1185.patch, NONE, 1.1 revision-1186.patch, NONE, 1.1 revision-1187.patch, NONE, 1.1 revision-1188.patch, NONE, 1.1 revision-1189.patch, NONE, 1.1 revision-1190.patch, NONE, 1.1 revision-1191.patch, NONE, 1.1 revision-1192.patch, NONE, 1.1 revision-1193.patch, NONE, 1.1 openais.spec, 1.9, 1.10

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Aug 8 16:19:34 UTC 2006


Author: sdake

Update of /cvs/dist/rpms/openais/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv19724/devel

Modified Files:
	openais.spec 
Added Files:
	revision-1173.patch revision-1179.patch revision-1180.patch 
	revision-1181.patch revision-1182.patch revision-1183.patch 
	revision-1184.patch revision-1185.patch revision-1186.patch 
	revision-1187.patch revision-1188.patch revision-1189.patch 
	revision-1190.patch revision-1191.patch revision-1192.patch 
	revision-1193.patch 
Log Message:
auto-import openais-0.80-1.1 on branch devel from openais-0.80-1.1.src.rpm

revision-1173.patch:
 sync.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE revision-1173.patch ---
Index: exec/sync.c
===================================================================
--- exec/sync.c	(revision 1155)
+++ exec/sync.c	(revision 1173)
@@ -411,7 +411,7 @@
 	/*
 	 * This sync is complete so activate and start next service sync
 	 */
-	if (sync_callbacks.sync_activate) {
+	if (barrier_completed && sync_callbacks.sync_activate) {
 		sync_callbacks.sync_activate ();
 	
 		log_printf (LOG_LEVEL_NOTICE,

revision-1179.patch:
 saCkpt.h |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE revision-1179.patch ---
Index: include/saCkpt.h
===================================================================
--- include/saCkpt.h	(revision 1173)
+++ include/saCkpt.h	(revision 1179)
@@ -176,7 +176,7 @@
 
 SaAisErrorT
 saCkptCheckpointUnlink (
-	SaCkptCheckpointHandleT checkpointHandle,
+	SaCkptHandleT ckptHandle,
 	const SaNameT *checkpointName);
 
 SaAisErrorT

revision-1180.patch:
 print.c   |  124 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
 wthread.c |   25 +++++++++++-
 wthread.h |    2 -
 3 files changed, 124 insertions(+), 27 deletions(-)

--- NEW FILE revision-1180.patch ---
Index: exec/wthread.c
===================================================================
--- exec/wthread.c	(revision 1179)
+++ exec/wthread.c	(revision 1180)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
  *
  * All rights reserved.
  *
@@ -75,8 +76,15 @@
 			&worker_thread->new_work_mutex);
 		}
 
+		/*
+		 * We unlock then relock the new_work_mutex to allow the
+		 * worker function to execute and also allow new work to be
+		 * added to the work queue
+	  	 */
 		data_for_worker_fn = queue_item_get (&worker_thread->queue);
+		pthread_mutex_unlock (&worker_thread->new_work_mutex);
 		worker_thread->worker_thread_group->worker_fn (orf_token_mcast_thread_state, data_for_worker_fn);
+		pthread_mutex_lock (&worker_thread->new_work_mutex);
 		queue_item_remove (&worker_thread->queue);
 		pthread_mutex_unlock (&worker_thread->new_work_mutex);
 		pthread_mutex_lock (&worker_thread->done_work_mutex);
@@ -109,8 +117,14 @@
 	}
 
 	for (i = 0; i < threads; i++) {
-		worker_thread_group->threads[i].thread_state = malloc (thread_state_size);
-		thread_state_constructor (worker_thread_group->threads[i].thread_state);
+		if (thread_state_size) {
+			worker_thread_group->threads[i].thread_state = malloc (thread_state_size);
+		} else {
+			worker_thread_group->threads[i].thread_state = NULL;
+		}
+		if (thread_state_constructor) {
+			thread_state_constructor (worker_thread_group->threads[i].thread_state);
+		}
 		worker_thread_group->threads[i].worker_thread_group = worker_thread_group;
 		pthread_mutex_init (&worker_thread_group->threads[i].new_work_mutex, NULL);
 		pthread_cond_init (&worker_thread_group->threads[i].new_work_cond, NULL);
@@ -128,7 +142,7 @@
 	return (0);
 }
 
-void worker_thread_group_work_add (
+int worker_thread_group_work_add (
 	struct worker_thread_group *worker_thread_group,
 	void *item)
 {
@@ -138,9 +152,14 @@
 	worker_thread_group->last_scheduled = schedule;
 
 	pthread_mutex_lock (&worker_thread_group->threads[schedule].new_work_mutex);
+	if (queue_is_full (&worker_thread_group->threads[schedule].queue)) {
+		pthread_mutex_unlock (&worker_thread_group->threads[schedule].new_work_mutex);
+		return (-1);
+	}
 	queue_item_add (&worker_thread_group->threads[schedule].queue, item);
 	pthread_cond_signal (&worker_thread_group->threads[schedule].new_work_cond);
 	pthread_mutex_unlock (&worker_thread_group->threads[schedule].new_work_mutex);
+	return (0);
 }
 
 void worker_thread_group_wait (
Index: exec/wthread.h
===================================================================
--- exec/wthread.h	(revision 1179)
+++ exec/wthread.h	(revision 1180)
@@ -51,7 +51,7 @@
 	void (*thread_state_constructor)(void *),
 	void (*worker_fn)(void *thread_state, void *work_item));
 
-extern void worker_thread_group_work_add (
+extern int worker_thread_group_work_add (
 	struct worker_thread_group *worker_thread_group,
 	void *item);
 
Index: exec/print.c
===================================================================
--- exec/print.c	(revision 1179)
+++ exec/print.c	(revision 1180)
@@ -1,12 +1,13 @@
 /*
  * Copyright (c) 2002-2004 MontaVista Software, Inc.
+ * Copyright (c) 2006 Ericsson AB.
  *
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
+ *	original work, Add worker thread to avoid blocking syslog
  *
- * Copyright (c) 2006 Ericsson AB.
- *		Author: Hans Feldt
- *      Description: Added support for runtime installed loggers, tags tracing,
- *                   and file & line printing.
+ * Author: Hans Feldt
+ *      Added support for runtime installed loggers, tags tracing, 
+ *	and file & line printing.
  *
  * All rights reserved.
  *
@@ -53,16 +54,26 @@
 #endif
 #include <syslog.h>
 #include <stdlib.h>
+#include <pthread.h>
 
 #include "print.h"
 #include "totemip.h"
 #include "../include/saAis.h"
 #include "mainconfig.h"
+#include "wthread.h"
 
 static unsigned int logmode = LOG_MODE_BUFFER | LOG_MODE_STDERR | LOG_MODE_SYSLOG;
+
 static char *logfile = 0;
+
 static int log_setup_called;
 
+static pthread_mutex_t log_mode_mutex;
+
+static struct worker_thread_group log_thread_group;
+
+static unsigned int dropped_log_entries = 0;
+
 #ifndef MAX_LOGGERS
 #define MAX_LOGGERS 32
 #endif
@@ -70,8 +81,7 @@
 
 static FILE *log_file_fp = 0;
 
-struct log_entry
-{
+struct log_entry {
 	char *file;
 	int line;
 	int level;
@@ -80,8 +90,15 @@
 };
 
 static struct log_entry *head;
+
 static struct log_entry *tail;
 
+struct log_data {
+	unsigned int syslog_pos;
+	unsigned int level;
+	char *log_string;
+};
+
 static int logger_init (const char *ident, int tags, int level, int mode)
 {
 	int i;
@@ -131,9 +148,31 @@
 	vsnprintf(entry->str, sizeof(entry->str), format, ap);
 }
 
+static void log_printf_worker_fn (void *thread_data, void *work_item)
+{
+	struct log_data *log_data = (struct log_data *)work_item;
+
+	/*
+	 * Output the log data
+	 */
+	if (logmode & LOG_MODE_FILE && log_file_fp != 0) {
+		fprintf (log_file_fp, "%s", log_data->log_string);
+		fflush (log_file_fp);
+	}
+	if (logmode & LOG_MODE_STDERR) {
+		fprintf (stderr, "%s", log_data->log_string);
+		fflush (stdout);
+	}
+
+	if (logmode & LOG_MODE_SYSLOG) {
+		syslog (log_data->level, &log_data->log_string[log_data->syslog_pos]);
+	}
+	free (log_data->log_string);
+}
+
 static void _log_printf (char *file, int line,
-						 int level, int id,
-						 char *format, va_list ap)
+	int level, int id,
+	char *format, va_list ap)
 {
 	char newstring[4096];
 	char log_string[4096];
@@ -141,14 +180,18 @@
 	struct timeval tv;
 	int i = 0;
 	int len;
+	struct log_data log_data;
+	unsigned int res = 0;
 
 	assert (id < MAX_LOGGERS);
 
+	pthread_mutex_lock (&log_mode_mutex);
 	/*
 	** Buffer before log_setup() has been called.
 	*/
 	if (logmode & LOG_MODE_BUFFER) {
 		buffered_log_printf(file, line, level, format, ap);
+		pthread_mutex_unlock (&log_mode_mutex);
 		return;
 	}
 
@@ -165,7 +208,18 @@
 	} else {	
 		sprintf (&newstring[i], "[%-5s] %s", loggers[id].ident, format);
 	}
-	len = vsprintf (log_string, newstring, ap);
+	if (dropped_log_entries) {
+		/*
+		 * Get rid of \n if there is one
+		 */
+		if (newstring[strlen (newstring) - 1] == '\n') {
+			newstring[strlen (newstring) - 1] = '\0';
+		}
+		len = sprintf (log_string,
+			"%s - prior to this log entry, openais logger dropped '%d' messages because of overflow.", newstring, dropped_log_entries + 1);
+	} else {
+		len = vsprintf (log_string, newstring, ap);
+	}
 
 	/*
 	** add line feed if not done yet
@@ -176,20 +230,32 @@
 	}
 
 	/*
-	 * Output the log data
+	 * Create work thread data
 	 */
-	if (logmode & LOG_MODE_FILE && log_file_fp != 0) {
-		fprintf (log_file_fp, "%s", log_string);
-		fflush (log_file_fp);
+	log_data.syslog_pos = i;
+	log_data.level = level;
+	log_data.log_string = strdup (log_string);
+	if (log_data.log_string == NULL) {
+		goto drop_log_msg;
 	}
-	if (logmode & LOG_MODE_STDERR) {
-		fprintf (stderr, "%s", log_string);
+	
+	if (log_setup_called) {
+		res = worker_thread_group_work_add (&log_thread_group, &log_data);
+		if (res == 0) {
+			dropped_log_entries = 0;
+		} else {
+			dropped_log_entries += 1;
+		}
+	} else {
+		log_printf_worker_fn (NULL, &log_data);	
 	}
-	fflush (stdout);
 
-	if (logmode & LOG_MODE_SYSLOG) {
-		syslog (level, &log_string[i]);
-	}
+	pthread_mutex_unlock (&log_mode_mutex);
+	return;
+
+drop_log_msg:
+	dropped_log_entries++;
+	pthread_mutex_unlock (&log_mode_mutex);
 }
 
 int _log_init (const char *ident)
@@ -222,7 +288,9 @@
 		}
 	}
 
+	pthread_mutex_lock (&log_mode_mutex);
 	logmode = config->logmode;
+	pthread_mutex_unlock (&log_mode_mutex);
 	logfile = config->logfile;
 
 	if (config->logmode & LOG_MODE_SYSLOG) {
@@ -249,13 +317,23 @@
 			config->logger[i].level = LOG_LEVEL_INFO;
 		config->logger[i].tags |= TAG_LOG;
 		logger_init (config->logger[i].ident,
-					 config->logger[i].tags,
-					 config->logger[i].level,
-					 config->logger[i].mode);
+			config->logger[i].tags,
+			config->logger[i].level,
+			config->logger[i].mode);
 	}
 
 	log_setup_called = 1;
 
+	worker_thread_group_init (
+		&log_thread_group,
+		1,
+		1024,
+		sizeof (struct log_data),
+		0,
+		NULL,
+		log_printf_worker_fn);
+
+
 	/*
 	** Flush what we have buffered
 	*/

revision-1181.patch:
 ckpt-rd.c |    8 +++++---
 ckpt-wr.c |   19 +------------------
 2 files changed, 6 insertions(+), 21 deletions(-)

--- NEW FILE revision-1181.patch ---
Index: test/ckpt-wr.c
===================================================================
--- test/ckpt-wr.c	(revision 1180)
+++ test/ckpt-wr.c	(revision 1181)
@@ -67,7 +67,7 @@
 	.creationFlags =        SA_CKPT_WR_ALL_REPLICAS,
 	.checkpointSize =       250000,
 	.retentionDuration =    SA_TIME_ONE_SECOND * 60,
-	.maxSections =          5,
+	.maxSections =          1,
 	.maxSectionSize =       250000,
 	.maxSectionIdSize =     10
 };
@@ -130,23 +130,6 @@
 
 
     do{
-			error = saCkptCheckpointRead (checkpointHandle,
-											ReadVectorElements,
-											1,
-											&erroroneousVectorIndex);
-			if (error != SA_AIS_OK) {
-				if (error == SA_AIS_ERR_TRY_AGAIN) {
-					continue;
-				}
-				return (0);
-			}
-			
-			if (ReadVectorElements->dataBuffer == 0) {
-				printf ("Default Checkpoint has no data\n");
-			} else {
-				count = atol((char *)ReadVectorElements->dataBuffer);
-			}
-			
 			count++;
 			sprintf((char*)&data, "%d",(int)count);
 			writeElement.sectionId = (SaCkptSectionIdT)SA_CKPT_DEFAULT_SECTION_ID;
Index: test/ckpt-rd.c
===================================================================
--- test/ckpt-rd.c	(revision 1180)
+++ test/ckpt-rd.c	(revision 1181)
@@ -52,7 +52,7 @@
 int ckptinv;
 void printSaNameT (SaNameT *name)
 {
-	int i;
+	int i = 0;
 
 	for (i = 0; i < name->length; i++) {
 		printf ("%c", name->value[i]);
@@ -90,12 +90,14 @@
 	SaAisErrorT error;
 	SaUint32T erroroneousVectorIndex = 0;
 	struct timespec delay;	
+	int i = 0;
+
 	delay.tv_sec = 1;
 	delay.tv_nsec = 0;
-
-
 	
 	error = saCkptInitialize (&ckptHandle, &callbacks, &version);
+	printf ("%s: initialize of checkpoint service\n",
+		get_test_output (error, SA_AIS_OK));
 	
 	error = saCkptCheckpointOpen (ckptHandle,
 		&checkpointName,

revision-1182.patch:
 evs.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE revision-1182.patch ---
Index: lib/evs.c
===================================================================
--- lib/evs.c	(revision 1181)
+++ lib/evs.c	(revision 1182)
@@ -1,4 +1,3 @@
-#define PROCESSOR_COUNT_MAX 32
 /*
  * vi: set autoindent tabstop=4 shiftwidth=4 :
 
@@ -46,6 +45,7 @@
 #include <sys/socket.h>
 #include <errno.h>
 
+#include "../exec/totem.h"
 #include "../include/saAis.h"
 #include "../include/evs.h"
 #include "../include/ipc_evs.h"

revision-1183.patch:
 totemnet.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE revision-1183.patch ---
Index: exec/totemnet.c
===================================================================
--- exec/totemnet.c	(revision 1182)
+++ exec/totemnet.c	(revision 1183)
@@ -1024,7 +1024,7 @@
 		memset(&mreq, 0, sizeof(mreq));
 		mreq.imr_multiaddr.s_addr = mcast_sin->sin_addr.s_addr;
 		mreq.imr_interface.s_addr = boundto_sin->sin_addr.s_addr;
-		res = setsockopt (sockets->mcast_send, IPPROTO_IP, IP_ADD_MEMBERSHIP,
+		res = setsockopt (sockets->mcast_recv, IPPROTO_IP, IP_ADD_MEMBERSHIP,
 			&mreq, sizeof (mreq));
 		if (res == -1) {
 			perror ("join ipv4 multicast group failed");

revision-1184.patch:
 exec/clm.c        |   12 ++++--------
 include/mar_clm.h |   28 +++++++++++++++++++++++-----
 2 files changed, 27 insertions(+), 13 deletions(-)

--- NEW FILE revision-1184.patch ---
Index: include/mar_clm.h
===================================================================
--- include/mar_clm.h	(revision 1183)
+++ include/mar_clm.h	(revision 1184)
@@ -1,9 +1,10 @@
 /*
  * Copyright (C) 2006 Red Hat, Inc.
+ * Copyright (C) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
  *
  * This software licensed under BSD license, the text of which follows:
  * 
@@ -35,6 +36,7 @@
 #ifndef AIS_MAR_CLM_H_DEFINED
 #define AIS_MAR_CLM_H_DEFINED
 
+#include "swab.h"
 #include "saAis.h"
 #include "saClm.h"
 #include "mar_gen.h"
@@ -55,6 +57,12 @@
 	unsigned char value[MAR_CLM_MAX_ADDRESS_LENGTH] __attribute__((aligned(8)));
 } mar_clm_node_address_t;
 
+static inline void swab_mar_clm_node_address_t(mar_clm_node_address_t *to_swab)
+{
+	swab_mar_uint16_t (&to_swab->length);
+	swab_mar_uint32_t (&to_swab->family);
+}
+
 static inline void marshall_from_mar_clm_node_address_t (
 	SaClmNodeAddressT *dest,
 	mar_clm_node_address_t *src)
@@ -77,14 +85,24 @@
  * Marshalling the SaClmClusterNodeT data structure
  */
 typedef struct {
-	unsigned int node_id __attribute__((aligned(8)));
+	mar_uint32_t node_id __attribute__((aligned(8)));
 	mar_clm_node_address_t node_address __attribute__((aligned(8)));
 	mar_name_t node_name __attribute__((aligned(8)));
-	unsigned int member __attribute__((aligned(8)));
-	unsigned long long boot_timestamp __attribute__((aligned(8)));
-	unsigned long long initial_view_number __attribute__((aligned(8)));
+	mar_uint32_t member __attribute__((aligned(8)));
+	mar_uint64_t boot_timestamp __attribute__((aligned(8)));
+	mar_uint64_t initial_view_number __attribute__((aligned(8)));
 } mar_clm_cluster_node_t;
 
+static inline void swab_mar_clm_cluster_node_t(mar_clm_cluster_node_t *to_swab)
+{
+	swab_mar_uint32_t (&to_swab->node_id);
+	swab_mar_uint32_t (&to_swab->member);
+	swab_mar_clm_node_address_t (&to_swab->node_address);
+	swab_mar_name_t (&to_swab->node_name);
+	swab_mar_uint64_t (&to_swab->boot_timestamp);
+	swab_mar_uint64_t (&to_swab->initial_view_number);
+}
+
 static inline void marshall_to_mar_clm_cluster_node_t (
 	mar_clm_cluster_node_t *dest,
 	SaClmClusterNodeT *src)
Index: exec/clm.c
===================================================================
--- exec/clm.c	(revision 1183)
+++ exec/clm.c	(revision 1184)
@@ -1,10 +1,11 @@
 /*
  * Copyright (c) 2002-2006 MontaVista Software, Inc.
  * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (C) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
- * Author: Steven Dake (sdake at mvista.com)
+ * Author: Steven Dake (sdake at redhat.com)
  *
  * This software licensed under BSD license, the text of which follows:
  * 
@@ -70,7 +71,6 @@
 #include "ipc.h"
 #include "mempool.h"
 #include "service.h"
-#include "../include/swab.h"
 #include "print.h"
 
 enum clm_message_req_types {
@@ -575,12 +575,8 @@
 {
 	struct req_exec_clm_nodejoin *node_join = msg;
 
-	node_join->cluster_node.node_id = swab32(node_join->cluster_node.node_id);
-	node_join->cluster_node.node_address.family = swab32(node_join->cluster_node.node_address.family);
-	node_join->cluster_node.node_address.length = swab16(node_join->cluster_node.node_address.length);
-	node_join->cluster_node.initial_view_number = swab64(node_join->cluster_node.initial_view_number);
-	node_join->cluster_node.boot_timestamp = swab64(node_join->cluster_node.boot_timestamp);
-
+	swab_mar_req_header_t (&node_join->header);
+	swab_mar_clm_cluster_node_t (&node_join->cluster_node);
 }
 
 static void message_handler_req_exec_clm_nodejoin (

revision-1185.patch:
 exec/cpg.c        |   10 +++++++---
 include/mar_cpg.h |   15 +++++++++++----
 2 files changed, 18 insertions(+), 7 deletions(-)

--- NEW FILE revision-1185.patch ---
Index: include/mar_cpg.h
===================================================================
--- include/mar_cpg.h	(revision 1184)
+++ include/mar_cpg.h	(revision 1185)
@@ -1,10 +1,11 @@
 /*
  * Copyright (c) 2006 Red Hat, Inc.
+ * Author: Patrick Caulfield (pcaulfie at redhat.com)
  *
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
  * All rights reserved.
  *
- * Author: Patrick Caulfield (pcaulfie at redhat.com)
- *
  * This software licensed under BSD license, the text of which follows:
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,12 +36,18 @@
 #define MAR_CPG_H_DEFINED
 
 #include "cpg.h"
+#include "swab.h"
 
 typedef struct {
-	uint32_t length __attribute((aligned(8)));
-	char value[CPG_MAX_NAME_LENGTH] __attribute((aligned(8)));
+	uint32_t length __attribute__((aligned(8)));
+	char value[CPG_MAX_NAME_LENGTH] __attribute__((aligned(8)));
 } mar_cpg_name_t;
 
+static inline void swab_mar_cpg_name_t (mar_cpg_name_t *to_swab)
+{
+	swab_mar_uint32_t (&to_swab->length);
+}
+
 static inline void marshall_from_mar_cpg_name_t (
 	struct cpg_name *dest,
 	mar_cpg_name_t *src)
Index: exec/cpg.c
===================================================================
--- exec/cpg.c	(revision 1184)
+++ exec/cpg.c	(revision 1185)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
@@ -610,7 +611,7 @@
 	struct req_exec_cpg_procjoin *req_exec_cpg_procjoin = (struct req_exec_cpg_procjoin *)msg;
 
 	req_exec_cpg_procjoin->pid = swab32(req_exec_cpg_procjoin->pid);
-	req_exec_cpg_procjoin->group_name.length = swab32(req_exec_cpg_procjoin->group_name.length);
+	swab_mar_cpg_name_t (&req_exec_cpg_procjoin->group_name);
 	req_exec_cpg_procjoin->reason = swab32(req_exec_cpg_procjoin->reason);
 }
 
@@ -619,9 +620,11 @@
 	mar_res_header_t *res = (mar_res_header_t *)msg;
 	struct join_list_entry *jle = (struct join_list_entry *)(msg + sizeof(mar_res_header_t));
 
+	/* XXX shouldn't mar_res_header be swabbed? */
+
 	while ((void*)jle < msg + res->size) {
 		jle->pid = swab32(jle->pid);
-		jle->group_name.length = swab32(jle->group_name.length);
+		swab_mar_cpg_name_t (&jle->group_name);
 		jle++;
 	}
 }
@@ -630,9 +633,10 @@
 {
 	struct req_exec_cpg_mcast *req_exec_cpg_mcast = (struct req_exec_cpg_mcast *)msg;
 
+	swab_mar_req_header_t (&req_exec_cpg_mcast->header);
+	swab_mar_cpg_name_t (&req_exec_cpg_mcast->group_name);
 	req_exec_cpg_mcast->pid = swab32(req_exec_cpg_mcast->pid);
 	req_exec_cpg_mcast->msglen = swab32(req_exec_cpg_mcast->msglen);
-	req_exec_cpg_mcast->group_name.length = swab32(req_exec_cpg_mcast->group_name.length);
 
 }
 

revision-1186.patch:
 evs.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

--- NEW FILE revision-1186.patch ---
Index: exec/evs.c
===================================================================
--- exec/evs.c	(revision 1185)
+++ exec/evs.c	(revision 1186)
@@ -1,11 +1,12 @@
 /*
  * Copyright (c) 2004-2006 MontaVista Software, Inc.
  * Copyright (c) 2006 Red Hat, Inc.
+ * Author: Steven Dake (sdake at mvista.com)
  *
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
  * All rights reserved.
  *
- * Author: Steven Dake (sdake at mvista.com)
- *
  * This software licensed under BSD license, the text of which follows:
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -55,6 +56,7 @@
 #include "../include/list.h"
 #include "../include/queue.h"
 #include "../lcr/lcr_comp.h"
+#include "../include/swab.h"
 #include "totempg.h"
 #include "main.h"
 #include "ipc.h"
@@ -465,6 +467,11 @@
 
 static void req_exec_mcast_endian_convert (void *msg)
 {
+	struct req_exec_evs_mcast *req_exec_evs_mcast =
+		(struct req_exec_evs_mcast *)msg;
+	req_exec_evs_mcast->group_entries =
+		swab32 (req_exec_evs_mcast->group_entries);
+	req_exec_evs_mcast->msg_len = swab32 (req_exec_evs_mcast->msg_len);
 }
 
 static void message_handler_req_exec_mcast (

revision-1187.patch:
 evt.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

--- NEW FILE revision-1187.patch ---
Index: exec/evt.c
===================================================================
--- exec/evt.c	(revision 1186)
+++ exec/evt.c	(revision 1187)
@@ -2,6 +2,8 @@
  * Copyright (c) 2004-2006 Mark Haverkamp
  * Copyright (c) 2004-2006 Open Source Development Lab
  *
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
  * All rights reserved.
  *
  * This software licensed under BSD license, the text of which follows:
@@ -2017,11 +2019,11 @@
 	 * led_svr_channel_handle and led_lib_channel_handle.
 	 */
 
-	evt->led_chan_name.length = swab16(evt->led_chan_name.length);
+	swab_mar_name_t (&evt->led_chan_name);
 	evt->led_chan_unlink_id = swab64(evt->led_chan_unlink_id);
 	evt->led_event_id = swab64(evt->led_event_id);
 	evt->led_sub_id = swab32(evt->led_sub_id);
-	evt->led_publisher_name.length = swab32(evt->led_publisher_name.length);
+	swab_mar_name_t (&evt->led_publisher_name);
 	evt->led_retention_time = swab64(evt->led_retention_time);
 	evt->led_publish_time = swab64(evt->led_publish_time);
 	evt->led_user_data_offset = swab32(evt->led_user_data_offset);
@@ -3601,14 +3603,13 @@
 	switch (cpkt->chc_op) {
 	
 	case EVT_OPEN_CHAN_OP:
-		cpkt->u.chc_chan.ocr_name.length =
-			swab16(cpkt->u.chc_chan.ocr_name.length);
+		swab_mar_name_t (&cpkt->u.chc_chan.ocr_name);
 		cpkt->u.chc_chan.ocr_serial_no = swab64(cpkt->u.chc_chan.ocr_serial_no);
 		break;
 
 	case EVT_UNLINK_CHAN_OP:
 	case EVT_CLOSE_CHAN_OP:
-		cpkt->u.chcu.chcu_name.length = swab16(cpkt->u.chcu.chcu_name.length);
+		swab_mar_name_t (&cpkt->u.chcu.chcu_name);
 		cpkt->u.chcu.chcu_unlink_id = swab64(cpkt->u.chcu.chcu_unlink_id);
 		break;
 
@@ -3623,8 +3624,7 @@
 		break;
 
 	case EVT_OPEN_COUNT:
-		cpkt->u.chc_set_opens.chc_chan_name.length = 
-			swab16(cpkt->u.chc_set_opens.chc_chan_name.length);
+		swab_mar_name_t (&cpkt->u.chc_set_opens.chc_chan_name);
 		cpkt->u.chc_set_opens.chc_open_count = 
 			swab32(cpkt->u.chc_set_opens.chc_open_count);
 		break;

revision-1188.patch:
 lcr_ifact.c |   21 ++++++++-------------
 1 files changed, 8 insertions(+), 13 deletions(-)

--- NEW FILE revision-1188.patch ---
Index: lcr/lcr_ifact.c
===================================================================
--- lcr/lcr_ifact.c	(revision 1187)
+++ lcr/lcr_ifact.c	(revision 1188)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2006 Steven Dake (sdake at mvista.com)
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * This software licensed under BSD license, the text of which follows:
  * 
@@ -32,6 +33,7 @@
 #include <dlfcn.h>
 #include <dirent.h>
 #include <errno.h>
+#include <string.h>
 #include <unistd.h>
 #include <fnmatch.h>
 #include "lcr_comp.h"
@@ -177,28 +179,21 @@
 {
 	char *ld_library_path;
 	char *my_ld_library_path;
-	char *p_s;
-	unsigned int i;
-	unsigned int len;
+	char *p_s, *ptrptr;
 
 	ld_library_path = getenv ("LD_LIBRARY_PATH");
 	if (ld_library_path == NULL) {
 		return;
 	}
 	my_ld_library_path = strdup (ld_library_path);
-	if (my_ld_library_path == 0) {
+	if (my_ld_library_path == NULL) {
 		return;
 	}
 
-	len = strlen (my_ld_library_path) + 1;
-
-	for (i = 0, p_s = my_ld_library_path, i = 0; i < len; i++) {
-		if (my_ld_library_path[i] == ':' || my_ld_library_path[i] == '\0') {
-			my_ld_library_path[i]='\0';
-//printf ("path list %x path list entries %d\n", path_list, path_list_entries);
-			path_list[path_list_entries++] = strdup (p_s);
-			p_s = &my_ld_library_path[i];
-		}
+	p_s = strtok_r (my_ld_library_path, ":", &ptrptr);
+	while (p_s != NULL) {
+		path_list[path_list_entries++] = strdup (p_s);
+		p_s = strtok_r (NULL, ":", &ptrptr);
 	}
 
 	free (my_ld_library_path);

revision-1189.patch:
 vsf_ykd.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

--- NEW FILE revision-1189.patch ---
Index: exec/vsf_ykd.c
===================================================================
--- exec/vsf_ykd.c	(revision 1188)
+++ exec/vsf_ykd.c	(revision 1189)
@@ -1,11 +1,12 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
  * Copyright (c) 2006 Red Hat, Inc.
+ * Author: Steven Dake (sdake at mvista.com)
  *
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
  * All rights reserved.
  *
- * Author: Steven Dake (sdake at mvista.com)
- *
  * This software licensed under BSD license, the text of which follows:
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -32,6 +33,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
+
 #include <assert.h>
 #include <pwd.h>
 #include <grp.h>
@@ -302,10 +304,12 @@
 {
 	int i;
 
-	ykd_session->member_list_entries = swab32 (ykd_session->member_list_entries);
+	ykd_session->member_list_entries =
+		swab32 (ykd_session->member_list_entries);
 	ykd_session->session_id = swab32 (ykd_session->session_id);
 	for (i = 0; i < ykd_session->member_list_entries; i++) {
-// TODO		totemip_copy_endian_convert (&ykd_session->member_list[i], &ykd_session->member_list[i]);
+		ykd_session->member_list[i] =
+			swab32 (ykd_session->member_list[i]);
 	}
 }
 
@@ -355,7 +359,8 @@
 		return;
 	}
 #endif
-	if (endian_conversion_required) {
+	if (endian_conversion_required &&
+	    (iovec->iov_len > sizeof (struct ykd_header))) {
 		ykd_state_endian_convert ((struct ykd_state *)msg_state);
 	}
 
@@ -384,6 +389,7 @@
 
 	switch (ykd_mode) {
 		case YKD_MODE_SENDSTATE:
+			assert (iovec->iov_len > sizeof (struct ykd_header));
 			/*
 			 * Copy state information for the sending processor
 			 */

revision-1190.patch:
 exec/totempg.c |    1 +
 include/swab.h |   20 +-------------------
 2 files changed, 2 insertions(+), 19 deletions(-)

--- NEW FILE revision-1190.patch ---
Index: include/swab.h
===================================================================
--- include/swab.h	(revision 1189)
+++ include/swab.h	(revision 1190)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
@@ -29,26 +30,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
-#include <assert.h>
-#include <sys/mman.h>
 #include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <sys/un.h>
-#include <sys/ioctl.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <signal.h>
-#include <sched.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/poll.h>
 
 #define swab16(x) \
 ({ \
Index: exec/totempg.c
===================================================================
--- exec/totempg.c	(revision 1189)
+++ exec/totempg.c	(revision 1190)
@@ -88,6 +88,7 @@
 #include <string.h>
 #include <assert.h>
 #include <pthread.h>
+#include <errno.h>
 
 #include "../include/hdb.h"
 #include "../include/list.h"

revision-1191.patch:
 amf.c      |   12 
 amfcomp.c  |    8 
 ckpt.c     |  566 +++++++++++++++++++-------------------
 evt.c      |  888 ++++++++++++++++++++++++++++++-------------------------------
 ipc.c      |    9 
 lck.c      |   82 ++---
 main.c     |    2 
 print.h    |    9 
 totem.h    |    8 
 totemnet.c |    7 
 totempg.c  |    3 
 totemrrp.c |    4 
 totemsrp.c |    7 
 13 files changed, 813 insertions(+), 792 deletions(-)

--- NEW FILE revision-1191.patch ---
Index: exec/totemnet.c
===================================================================
--- exec/totemnet.c	(revision 1190)
+++ exec/totemnet.c	(revision 1191)
@@ -1,10 +1,12 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
  * Author: Steven Dake (sdake at mvista.com)
- *
+
  * This software licensed under BSD license, the text of which follows:
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -32,7 +34,6 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-
 #include <assert.h>
 #include <pthread.h>
 #include <sys/mman.h>
@@ -137,7 +138,7 @@
 
 	int totemnet_log_level_debug;
 
-	void (*totemnet_log_printf) (char *file, int line, int level, char *format, ...);
+	void (*totemnet_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
 
 	totemnet_handle handle;
 
Index: exec/print.h
===================================================================
--- exec/print.h	(revision 1190)
+++ exec/print.h	(revision 1191)
@@ -1,6 +1,5 @@
 /*
  * Copyright (c) 2002-2004 MontaVista Software, Inc.
- *
  * Author: Steven Dake (sdake at mvista.com)
  *
  * Copyright (c) 2006 Ericsson AB.
@@ -8,6 +7,8 @@
  *      Description: Added support for runtime installed loggers, tags tracing,
  *                   and file & line printing.
  *
+ * Copyright (c) 2006 Sun Microsystems, Inc.
+ *
  * All rights reserved.
  *
  * This software licensed under BSD license, the text of which follows:
@@ -93,9 +94,9 @@
 */
 static int logger_identifier __attribute__((unused));
 
-extern void internal_log_printf (char *file, int line, int priority, char *format, ...);
-extern void internal_log_printf2 (char *file, int line, int level, int id, char *format, ...);
-extern void trace (char *file, int line, int tag, int id, char *format, ...);
+extern void internal_log_printf (char *file, int line, int priority, char *format, ...) __attribute__((format(printf, 4, 5)));
+extern void internal_log_printf2 (char *file, int line, int level, int id, char *format, ...) __attribute__((format(printf, 5, 6)));
+extern void trace (char *file, int line, int tag, int id, char *format, ...) __attribute__((format(printf, 5, 6)));
 extern void log_flush(void);
 
 #define LEVELMASK 0x07                 /* 3 bits */
Index: exec/ipc.c
===================================================================
--- exec/ipc.c	(revision 1190)
+++ exec/ipc.c	(revision 1191)
@@ -155,6 +155,7 @@
 	void *message)
 {
 	SaAisErrorT error = SA_AIS_ERR_ACCESS;
+	size_t cinfo = (size_t)conn_info;
 	mar_req_lib_response_init_t *req_lib_response_init = (mar_req_lib_response_init_t *)message;
 	mar_res_lib_response_init_t res_lib_response_init;
 
@@ -165,7 +166,7 @@
 	res_lib_response_init.header.size = sizeof (mar_res_lib_response_init_t);
 	res_lib_response_init.header.id = MESSAGE_RES_INIT;
 	res_lib_response_init.header.error = error;
-	res_lib_response_init.conn_info = (unsigned long long)conn_info;
+	res_lib_response_init.conn_info = (mar_uint64_t)cinfo;
 
 	openais_conn_send_response (
 		conn_info,
@@ -184,6 +185,7 @@
 	void *message)
 {
 	SaAisErrorT error = SA_AIS_ERR_ACCESS;
+	size_t cinfo;
 	mar_req_lib_dispatch_init_t *req_lib_dispatch_init = (mar_req_lib_dispatch_init_t *)message;
 	mar_res_lib_dispatch_init_t res_lib_dispatch_init;
 	struct conn_info *msg_conn_info;
@@ -195,10 +197,11 @@
 		else
 			error = SA_AIS_OK;
 
-		conn_info->conn_info_partner = (struct conn_info *)req_lib_dispatch_init->conn_info;
+		cinfo = (size_t)req_lib_dispatch_init->conn_info;
+		conn_info->conn_info_partner = (struct conn_info *)cinfo;
 		conn_info->conn_info_partner->shared_mutex = conn_info->shared_mutex;
 
-		msg_conn_info = (struct conn_info *)req_lib_dispatch_init->conn_info;
+		msg_conn_info = (struct conn_info *)cinfo;
 		msg_conn_info->conn_info_partner = conn_info;
 
 		if (error == SA_AIS_OK) {
Index: exec/totempg.c
===================================================================
--- exec/totempg.c	(revision 1190)
+++ exec/totempg.c	(revision 1191)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2003-2005 MontaVista Software, Inc.
  * Copyright (c) 2005 OSDL.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
@@ -150,7 +151,7 @@
 static int totempg_log_level_warning;
 static int totempg_log_level_notice;
 static int totempg_log_level_debug;
-static void (*totempg_log_printf) (char *file, int line, int level, char *format, ...) = NULL;
+static void (*totempg_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5))) = NULL;
 
 struct totem_config *totempg_totem_config;
 
Index: exec/amfcomp.c
===================================================================
--- exec/amfcomp.c	(revision 1190)
+++ exec/amfcomp.c	(revision 1191)
@@ -1130,7 +1130,7 @@
 
 SaAisErrorT amf_comp_register (struct amf_comp *comp)
 {
-	TRACE2("Exec comp register '%s'", &comp->name.value);
+	TRACE2("Exec comp register '%s'", comp->name.value);
 
 	if (comp->saAmfCompPresenceState == SA_AMF_PRESENCE_RESTARTING) {
 		comp_presence_state_set (comp, SA_AMF_PRESENCE_INSTANTIATED);
@@ -1150,7 +1150,7 @@
 {
 	struct res_lib_amf_componenterrorreport res_lib;
 
-	TRACE2("Exec comp error report '%s'", &comp->name.value);
+	TRACE2("Exec comp error report '%s'", comp->name.value);
 
 	if (amf_su_is_local (comp->su)) {
 		res_lib.header.size = sizeof (struct res_lib_amf_componenterrorreport);
@@ -1171,7 +1171,7 @@
 void amf_comp_healthcheck_tmo (
 	struct amf_comp *comp, struct amf_healthcheck *healthcheck)
 {
-	TRACE2("Exec healthcheck tmo for '%s'", &comp->name.value);
+	TRACE2("Exec healthcheck tmo for '%s'", comp->name.value);
 
 	/* report to SU and let it handle the problem */
 	report_error_suspected (comp, healthcheck->recommendedRecovery);
@@ -1190,7 +1190,7 @@
  */
 void amf_comp_cleanup_completed (struct amf_comp *comp)
 {
-	TRACE2("Exec CLC cleanup completed for '%s'", &comp->name.value);
+	TRACE2("Exec CLC cleanup completed for '%s'", comp->name.value);
 
     /* Set all CSI's confirmed HA state to unknown  */
 	amf_comp_foreach_csi_assignment (comp, clear_ha_state);
Index: exec/evt.c
===================================================================
--- exec/evt.c	(revision 1190)
+++ exec/evt.c	(revision 1191)
@@ -72,18 +72,18 @@
  *
  * esi_version:				Version that the library is running.
  * esi_open_chans:			list of open channels associated with this
- * 							instance.  Used to clean up any data left
- * 							allocated when the finalize is done.
- * 							(event_svr_channel_open.eco_instance_entry)
+ *							instance.  Used to clean up any data left
+ *							allocated when the finalize is done.
+ *							(event_svr_channel_open.eco_instance_entry)
  * esi_events:				list of pending events to be delivered on this
- *  						instance (struct chan_event_list.cel_entry)
+ *							instance (struct chan_event_list.cel_entry)
  * esi_queue_blocked:		non-zero if the delivery queue got too full
- * 							and we're blocking new messages until we
- * 							drain some of the queued messages.
+ *							and we're blocking new messages until we
+ *							drain some of the queued messages.
  * esi_nevents:				Number of events in events lists to be sent.
  * esi_hdb:					Handle data base for open channels on this
- * 							instance.  Used for a quick lookup of
- * 							open channel data from a lib api message.
+ *							instance.  Used for a quick lookup of
[...4213 lines suppressed...]
 			/*
 			 * Add pending locks to granted list
 			 */
-		   	list_p = &resource->pr_pending_list_head.next;
+			list_p = resource->pr_pending_list_head.next;
 			list_del (&resource->pr_pending_list_head);
 			list_add_tail (list_p,
 				&resource->pr_granted_list_head);
@@ -1087,7 +1087,7 @@
 		req_exec_lck_resourcelock->req_lib_lck_resourcelock.async_call;
 	resource_lock->invocation =
 		req_exec_lck_resourcelock->req_lib_lck_resourcelock.invocation;
-	
+
 	/*
 	 * Waiter callback source
 	 */
@@ -1106,7 +1106,7 @@
 			req_exec_lck_resourcelock->resource_handle);
 
 		assert (resource_cleanup);
-			
+
 		list_add (&resource_lock->resource_cleanup_list,
 			&resource_cleanup->resource_lock_list_head);
 
@@ -1115,7 +1115,7 @@
 		 */
 		if (resource_lock->lock_status != SA_LCK_LOCK_NO_STATUS) {
 			/*
-			 * If lock granted or denied, deliver callback or 
+			 * If lock granted or denied, deliver callback or
 			 * response to library for non-async calls
 			 */
 			lock_response_deliver (
@@ -1153,8 +1153,8 @@
 	struct req_exec_lck_resourceunlock *req_exec_lck_resourceunlock = (struct req_exec_lck_resourceunlock *)message;
 	struct res_lib_lck_resourceunlock res_lib_lck_resourceunlock;
 	struct res_lib_lck_resourceunlockasync res_lib_lck_resourceunlockasync;
-	struct resource *resource = 0;
-	struct resource_lock *resource_lock = 0;
+	struct resource *resource = NULL;
+	struct resource_lock *resource_lock = NULL;
 	SaAisErrorT error = SA_AIS_OK;
 
 	log_printf (LOG_LEVEL_NOTICE, "EXEC request: saLckResourceUnlock %s\n",
@@ -1243,7 +1243,7 @@
 	if (resource == 0) {
 		goto error_exit;
 	}
-		
+
 error_exit:
 	if (message_source_is_local(&req_exec_lck_lockpurge->source)) {
 //		lck_resource_cleanup_remove (req_exec_lck_lockpurge->source.conn,
@@ -1278,7 +1278,7 @@
 	memcpy (&req_exec_lck_resourceopen.resource_name,
 		&req_lib_lck_resourceopen->lockResourceName,
 		sizeof (SaNameT));
-	
+
 	req_exec_lck_resourceopen.open_flags = req_lib_lck_resourceopen->resourceOpenFlags;
 	req_exec_lck_resourceopen.async_call = 0;
 	req_exec_lck_resourceopen.invocation = 0;
@@ -1392,7 +1392,7 @@
 	memcpy (&req_exec_lck_resourcelock.req_lib_lck_resourcelock,
 		req_lib_lck_resourcelock,
 		sizeof (struct req_lib_lck_resourcelock));
-	
+
 	req_exec_lck_resourcelock.resource_handle = req_lib_lck_resourcelock->resourceHandle;
 	req_exec_lck_resourcelock.async_call = 0;
 	req_exec_lck_resourcelock.invocation = 0;
@@ -1425,7 +1425,7 @@
 	memcpy (&req_exec_lck_resourcelock.req_lib_lck_resourcelock,
 		req_lib_lck_resourcelock,
 		sizeof (struct req_lib_lck_resourcelock));
-	
+
 	req_exec_lck_resourcelock.resource_handle = req_lib_lck_resourcelock->resourceHandle;
 	req_exec_lck_resourcelock.async_call = 1;
 	req_exec_lck_resourcelock.invocation = req_lib_lck_resourcelock->invocation;
@@ -1521,7 +1521,7 @@
 	memcpy (&req_exec_lck_lockpurge.req_lib_lck_lockpurge,
 		req_lib_lck_lockpurge,
 		sizeof (struct req_lib_lck_lockpurge));
-	
+
 	iovecs[0].iov_base = (char *)&req_exec_lck_lockpurge;
 	iovecs[0].iov_len = sizeof (req_exec_lck_lockpurge);
 
Index: exec/totemrrp.c
===================================================================
--- exec/totemrrp.c	(revision 1190)
+++ exec/totemrrp.c	(revision 1191)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
  * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
@@ -33,7 +34,6 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-
 #include <assert.h>
 #include <pthread.h>
 #include <sys/mman.h>
@@ -194,7 +194,7 @@
 
 	int totemrrp_log_level_debug;
 
-	void (*totemrrp_log_printf) (char *file, int line, int level, char *format, ...);
+	void (*totemrrp_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
 
 	totemrrp_handle handle;
 
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c	(revision 1190)
+++ exec/totemsrp.c	(revision 1191)
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2003-2006 MontaVista Software, Inc.
  * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
  * All rights reserved.
  *
@@ -423,7 +424,7 @@
 
 	int totemsrp_log_level_debug;
 
-	void (*totemsrp_log_printf) (char *file, int line, int level, char *format, ...);
+	void (*totemsrp_log_printf) (char *file, int line, int level, char *format, ...) __attribute__((format(printf, 4, 5)));
 
 	enum memb_state memb_state;
 
@@ -1350,7 +1351,7 @@
 	struct totemsrp_instance *instance = (struct totemsrp_instance *)data;
 
 	log_printf (instance->totemsrp_log_level_notice,
-		"The token was lost in state %d from timer %x\n", instance->memb_state, data);
+		"The token was lost in state %d from timer %p\n", instance->memb_state, data);
 	switch (instance->memb_state) {
 		case MEMB_STATE_OPERATIONAL:
 			totemrrp_iface_check (instance->totemrrp_handle);
@@ -2798,7 +2799,7 @@
 		return;
 	}
 	log_printf (instance->totemsrp_log_level_notice,
-		"Storing new sequence id for ring %d\n", commit_token->ring_id.seq);
+		"Storing new sequence id for ring %llx\n", commit_token->ring_id.seq);
 	//assert (fd > 0);
 	res = write (fd, &commit_token->ring_id.seq, sizeof (unsigned long long));
 	assert (res == sizeof (unsigned long long));
Index: exec/main.c
===================================================================
--- exec/main.c	(revision 1190)
+++ exec/main.c	(revision 1191)
@@ -218,7 +218,7 @@
 	struct group *group;
 	group = getgrnam (main_config->group);
 	if (group == 0) {
-		log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' group is not found in /etc/group, please read the documentation.\n", group);
+		log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' group is not found in /etc/group, please read the documentation.\n", group->gr_name);
 		openais_exit_error (AIS_DONE_GID_DETERMINE);
 	}
 	gid_valid = group->gr_gid;
Index: exec/totem.h
===================================================================
--- exec/totem.h	(revision 1190)
+++ exec/totem.h	(revision 1191)
@@ -1,10 +1,12 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
+ * Copyright (c) 2006 Red Hat, Inc.
+ * Copyright (c) 2006 Sun Microsystems, Inc.
  *
+ * Author: Steven Dake (sdake at mvista.com)
+ *
  * All rights reserved.
  *
- * Author: Steven Dake (sdake at mvista.com)
- *
  * This software licensed under BSD license, the text of which follows:
  * 
  * Redistribution and use in source and binary forms, with or without
@@ -70,7 +72,7 @@
 };
 
 struct totem_logging_configuration {
-	void (*log_printf) (char *, int, int, char *, ...);
+	void (*log_printf) (char *, int, int, char *, ...) __attribute__((format(printf, 4, 5)));
 	int log_level_security;
 	int log_level_error;
 	int log_level_warning;

revision-1192.patch:
 ckpt.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

--- NEW FILE revision-1192.patch ---
Index: exec/ckpt.c
===================================================================
--- exec/ckpt.c	(revision 1191)
+++ exec/ckpt.c	(revision 1192)
@@ -1351,7 +1351,7 @@
 	struct checkpoint *checkpoint;
 
 	if (list_empty(head)) {
-		log_printf (LOG_LEVEL_NOTICE, "clean_checkpoint_list: List is empty \n");
+		log_printf (LOG_LEVEL_DEBUG, "clean_checkpoint_list: List is empty \n");
 		return;
 	}
 
@@ -1365,7 +1365,7 @@
 		* If checkpoint has been unlinked and this is the last reference, delete it
 		*/
 		 if (checkpoint->unlinked && checkpoint->referenceCount == 1) { /*defect 1129*/
-			log_printf (LOG_LEVEL_NOTICE,"clean_checkpoint_list: deallocating checkpoint %s.\n",
+			log_printf (LOG_LEVEL_DEBUG,"clean_checkpoint_list: deallocating checkpoint %s.\n",
                                                                                                 checkpoint->name.value);
 			checkpoint_list = checkpoint_list->next;
 			checkpoint_release (checkpoint);
@@ -1373,7 +1373,7 @@
 
 		}
 		else if ((checkpoint->expired == 0) && (checkpoint->referenceCount == 1)) { /*defect 1192*/
-			log_printf (LOG_LEVEL_NOTICE, "clean_checkpoint_list: Starting timer to release checkpoint %s.\n",
+			log_printf (LOG_LEVEL_DEBUG, "clean_checkpoint_list: Starting timer to release checkpoint %s.\n",
 				checkpoint->name.value);
 			openais_timer_delete (checkpoint->retention_timer);
 			openais_timer_add (
@@ -2562,7 +2562,7 @@
 		if (section_descriptor->section_size
 			> checkpoint_section->section_descriptor.section_size) {
 
-			log_printf (LOG_LEVEL_NOTICE,
+			log_printf (LOG_LEVEL_DEBUG,
 				"recovery_section_create reallocating data. Present Size: %d, New Size: %d\n",
 				(int)checkpoint_section->section_descriptor.section_size,
 				(int)section_descriptor->section_size);

revision-1193.patch:
 ckpt.c |    1 +
 1 files changed, 1 insertion(+)

--- NEW FILE revision-1193.patch ---
Index: exec/ckpt.c
===================================================================
--- exec/ckpt.c	(revision 1192)
+++ exec/ckpt.c	(revision 1193)
@@ -1006,6 +1006,7 @@
 							sizeof(mar_ckpt_section_descriptor_t));
 
 					request_exec_sync_state.nodeid = this_ip->nodeid;
+					request_exec_sync_state.ckpt_id = checkpoint->ckpt_id;
 
 					for (i = 0; i < PROCESSOR_COUNT_MAX; i++) {
 


Index: openais.spec
===================================================================
RCS file: /cvs/dist/rpms/openais/devel/openais.spec,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- openais.spec	24 Jul 2006 01:45:46 -0000	1.9
+++ openais.spec	8 Aug 2006 16:19:31 -0000	1.10
@@ -1,12 +1,28 @@
 Name: openais
 Summary: The openais Standards-Based Cluster Framework executive and APIs
 Version: 0.80
-Release: 1.0
+Release: 1.1
 License: BSD
 Group: System Environment/Base
 URL: http://developer.osdl.org/dev/openais/
 Source0: http://developer.osdl.org/dev/openais/downloads/openais-%{version}/openais-%{version}.tar.gz
 Patch0: openais-0.76-defaultconfig.patch
+Patch1: revision-1173.patch
+Patch2: revision-1179.patch
+Patch3: revision-1180.patch
+Patch4: revision-1181.patch
+Patch5: revision-1182.patch
+Patch6: revision-1183.patch
+Patch7: revision-1184.patch
+Patch8: revision-1185.patch
+Patch9: revision-1186.patch
+Patch10: revision-1187.patch
+Patch11: revision-1188.patch
+Patch12: revision-1189.patch
+Patch13: revision-1190.patch
+Patch14: revision-1191.patch
+Patch15: revision-1192.patch
+Patch16: revision-1193.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x
 Requires(pre): /usr/sbin/useradd
@@ -31,6 +47,22 @@
 %prep
 %setup -q -n openais-%{version}
 %patch0 -p0
+%patch1 -p0
+%patch2 -p0
+%patch3 -p0
+%patch4 -p0
+%patch5 -p0
+%patch6 -p0
+%patch7 -p0
+%patch8 -p0
+%patch9 -p0
+%patch10 -p0
+%patch11 -p0
+%patch12 -p0
+%patch13 -p0
+%patch14 -p0
+%patch15 -p0
+%patch16 -p0
 
 %build
 # -O3 required for performance reasons
@@ -164,6 +196,9 @@
 %{_mandir}/man3/evs_membership_get.3*
 
 %changelog
+* Tue Aug 8 2006 Steven Dake <sdake at redhat.com>  - 0.80-1.1
+- New process of tracking any revisions in the upstream stable branch.
+
 * Sun Jul 23 2006 Steven Dake <sdake at redhat.com> - 0.80-1.0
 - New upstream release.
 - Added openais-cfgtool tool to install.




More information about the fedora-cvs-commits mailing list