rpms/openais/FC-6 revision-1406.patch, NONE, 1.1 revision-1407.patch, NONE, 1.1 revision-1408.patch, NONE, 1.1 revision-1409.patch, NONE, 1.1 revision-1423.patch, NONE, 1.1 openais.spec, 1.26, 1.27

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Aug 28 16:05:27 UTC 2007


Author: sdake

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

Modified Files:
	openais.spec 
Added Files:
	revision-1406.patch revision-1407.patch revision-1408.patch 
	revision-1409.patch revision-1423.patch 
Log Message:
auto-import openais-0.80.3-4 on branch FC-6 from openais-0.80.3-4.src.rpm

revision-1406.patch:
 totemsrp.c |   30 +++++++++---------------------
 1 files changed, 9 insertions(+), 21 deletions(-)

--- NEW FILE revision-1406.patch ---
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c	(revision 1405)
+++ exec/totemsrp.c	(revision 1406)
@@ -393,8 +393,6 @@
 
 	unsigned int my_token_seq;
 
-	unsigned int my_commit_token_seq;
-
 	/*
 	 * Timers
 	 */
@@ -619,8 +617,6 @@
 
 	instance->my_token_seq = SEQNO_START_TOKEN - 1;
 
-	instance->my_commit_token_seq = SEQNO_START_TOKEN - 1;
-
 	instance->memb_state = MEMB_STATE_OPERATIONAL;
 
 	instance->set_aru = -1;
@@ -1646,8 +1642,6 @@
 	struct totemsrp_instance *instance,
 	int gather_from)
 {
-	instance->my_commit_token_seq = SEQNO_START_TOKEN - 1;
-
 	memb_set_merge (
 		&instance->my_id, 1,
 		instance->my_proc_list, &instance->my_proc_list_entries);
@@ -1733,8 +1727,6 @@
 
 	instance->memb_state = MEMB_STATE_COMMIT;
 
-	instance->my_commit_token_seq = SEQNO_START_TOKEN - 1;
-
 	/*
 	 * reset all flow control variables since we are starting a new ring
 	 */
@@ -3961,16 +3953,6 @@
 	addr = (struct srp_addr *)memb_commit_token->end_of_commit_token;
 	memb_list = (struct memb_commit_token_memb_entry *)(addr + memb_commit_token->addr_entries);
 
-	if (sq_lte_compare (memb_commit_token->token_seq,
-		instance->my_commit_token_seq)) {
-		/*
-		 * discard token
-		 */
-		return (0);
-	}
-	instance->my_commit_token_seq = memb_commit_token->token_seq;
-
-
 #ifdef TEST_DROP_COMMIT_TOKEN_PERCENTAGE
 	if (random()%100 < TEST_DROP_COMMIT_TOKEN_PERCENTAGE) {
 		return (0);
@@ -3998,9 +3980,15 @@
 			break;
 
 		case MEMB_STATE_COMMIT:
-//			if (memcmp (&memb_commit_token->ring_id, &instance->my_ring_id,
-//				sizeof (struct memb_ring_id)) == 0) {
-			 if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq) {
+			/*
+			 * If retransmitted commit tokens are sent on this ring
+			 * filter them out and only enter recovery once the
+			 * commit token has traversed the array.  This is
+			 * determined by :
+		 	 * memb_commit_token->memb_index == memb_commit_token->addr_entries) {
+			 */
+			 if (memb_commit_token->ring_id.seq == instance->my_ring_id.seq &&
+				memb_commit_token->memb_index == memb_commit_token->addr_entries) {
 				memb_state_recovery_enter (instance, memb_commit_token);
 			}
 			break;

revision-1407.patch:
 totemsrp.c |    2 ++
 1 files changed, 2 insertions(+)

--- NEW FILE revision-1407.patch ---
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c	(revision 1406)
+++ exec/totemsrp.c	(revision 1407)
@@ -1548,6 +1548,8 @@
 	unsigned int new_memb_list_totemip[PROCESSOR_COUNT_MAX];
 	unsigned int left_list[PROCESSOR_COUNT_MAX];
 
+	memb_consensus_reset (instance);
+
 	old_ring_state_reset (instance);
 	ring_reset (instance);
 	deliver_messages_from_recovery_to_regular (instance);

revision-1408.patch:
 totemsrp.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

--- NEW FILE revision-1408.patch ---
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c	(revision 1407)
+++ exec/totemsrp.c	(revision 1408)
@@ -549,7 +549,8 @@
 	int fcc_mcasts_allowed);
 static void messages_free (struct totemsrp_instance *instance, unsigned int token_aru);
 
-static void memb_ring_id_store (struct totemsrp_instance *instance);
+static void memb_ring_id_set_and_store (struct totemsrp_instance *instance,
+	struct memb_ring_id *ring_id);
 static void memb_state_commit_token_update (struct totemsrp_instance *instance, struct memb_commit_token *commit_token);
 static void memb_state_commit_token_target_set (struct totemsrp_instance *instance, struct memb_commit_token *commit_token);
 static int memb_state_commit_token_send (struct totemsrp_instance *instance, struct memb_commit_token *memb_commit_token);
@@ -1707,10 +1708,10 @@
 
 	memb_state_commit_token_target_set (instance, commit_token);
 
+	memb_ring_id_set_and_store (instance, &commit_token->ring_id);
+
 	memb_state_commit_token_send (instance, commit_token);
 
-	memcpy (&instance->my_ring_id, &commit_token->ring_id,
-		sizeof (struct memb_ring_id));
 	instance->token_ring_id_seq = instance->my_ring_id.seq;
 
 	poll_timer_delete (instance->totemsrp_poll_handle, instance->memb_timer_state_gather_join_timeout);
@@ -1920,7 +1921,6 @@
 
 	reset_token_timeout (instance); // REVIEWED
 	reset_token_retransmit_timeout (instance); // REVIEWED
-	memb_ring_id_store (instance);
 
 	instance->memb_state = MEMB_STATE_RECOVERY;
 	return;
@@ -2829,6 +2829,7 @@
 		}
 		res = write (fd, &memb_ring_id->seq, sizeof (unsigned long long));
 		assert (res == sizeof (unsigned long long));
+		fsync (fd);
 		close (fd);
 	} else {
 		log_printf (instance->totemsrp_log_level_warning,
@@ -2840,13 +2841,16 @@
 	instance->token_ring_id_seq = memb_ring_id->seq;
 }
 
-static void memb_ring_id_store (
-	struct totemsrp_instance *instance)
+static void memb_ring_id_set_and_store (
+	struct totemsrp_instance *instance,
+	struct memb_ring_id *ring_id)
 {
 	char filename[256];
 	int fd;
 	int res;
 
+	memcpy (&instance->my_ring_id, ring_id, sizeof (struct memb_ring_id));
+
 	sprintf (filename, "%s/ringid_%s",
 		rundir, totemip_print (&instance->my_id.addr[0]));
 
@@ -2866,6 +2870,7 @@
 	//assert (fd > 0);
 	res = write (fd, &instance->my_ring_id.seq, sizeof (unsigned long long));
 	assert (res == sizeof (unsigned long long));
+	fsync (fd);
 	close (fd);
 }
 

revision-1409.patch:
 totempg.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

--- NEW FILE revision-1409.patch ---
Index: exec/totempg.c
===================================================================
--- exec/totempg.c	(revision 1408)
+++ exec/totempg.c	(revision 1409)
@@ -870,13 +870,14 @@
 /*
  * Determine if a message of msg_size could be queued
  */
+#define FUZZY_AVAIL_SUBTRACT 5
 static int send_ok (
 	int msg_size)
 {
 	int avail = 0;
 	int total;
 
-	avail = totemmrp_avail ();
+	avail = totemmrp_avail () - FUZZY_AVAIL_SUBTRACT;
 	
 	/*
 	 * msg size less then totempg_totem_config->net_mtu - 25 will take up

revision-1423.patch:
 ckpt.c |   14 +++++++-------
 sync.c |    3 +++
 2 files changed, 10 insertions(+), 7 deletions(-)

--- NEW FILE revision-1423.patch ---
Index: exec/ckpt.c
===================================================================
--- exec/ckpt.c	(revision 1422)
+++ exec/ckpt.c	(revision 1423)
@@ -825,14 +825,7 @@
 	}
 	
 	my_lowest_nodeid = 0xffffffff;
-	for (i = 0; i < my_member_list_entries; i++) {
-		if ((my_member_list[i] != 0) &&
-			(my_member_list[i] < my_lowest_nodeid)) {
 
-			my_lowest_nodeid = my_member_list[i];
-		}
-	}
-
 	/*
 	 * Handle regular configuration
 	 */
@@ -842,6 +835,13 @@
 		my_member_list_entries = member_list_entries;
 		memcpy (&my_saved_ring_id, ring_id,
 			sizeof (struct memb_ring_id));
+		for (i = 0; i < my_member_list_entries; i++) {
+			if ((my_member_list[i] != 0) &&
+				(my_member_list[i] < my_lowest_nodeid)) {
+
+				my_lowest_nodeid = my_member_list[i];
+			}
+		}
 	}
 }
 
Index: exec/sync.c
===================================================================
--- exec/sync.c	(revision 1422)
+++ exec/sync.c	(revision 1423)
@@ -452,6 +452,9 @@
 {
 	sync_ring_id = ring_id;
 
+	if (configuration_type != TOTEM_CONFIGURATION_REGULAR) {
+		return;
+	}
 	if (sync_processing && sync_callbacks.sync_abort != NULL) {
 		sync_callbacks.sync_abort ();
 	}


Index: openais.spec
===================================================================
RCS file: /cvs/dist/rpms/openais/FC-6/openais.spec,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- openais.spec	3 Jul 2007 22:06:31 -0000	1.26
+++ openais.spec	28 Aug 2007 16:05:25 -0000	1.27
@@ -1,12 +1,17 @@
 Name: openais
 Summary: The openais Standards-Based Cluster Framework executive and APIs
 Version: 0.80.3
-Release: 1%{?dist}
+Release: 4%{?dist}
 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-1406.patch
+Patch2: revision-1407.patch
+Patch3: revision-1408.patch
+Patch4: revision-1409.patch
+Patch5: revision-1423.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 ExclusiveArch: i386 ppc x86_64 ppc64 ia64 s390 s390x alpha
@@ -32,6 +37,11 @@
 %prep
 %setup -q -n openais-%{version}
 %patch0
+%patch1
+%patch2
+%patch3
+%patch4
+%patch5
 
 %build
 # -O3 required for performance reasons
@@ -170,6 +180,28 @@
 %{_mandir}/man3/evs_membership_get.3*
 
 %changelog
+* Tue Aug 28 2007 Steven Dake <sdake at redhat.com> - 0.80.3-4
+- Resolves: rhbz#251082
+- Add upstream revision 1423 - Fix synchronization defect resulting in segfault.
+- This is the fc6 build.
+ 
+* Tue Aug 1 2007 Steven Dake <sdake at redhat.com> - 0.80.3-3
+- Resolves: rhbz#209862
+- Resolves: rhbz#249506
+- Resolves: rhbz#249509
+- Resolves: rhbz#247733
+
+* Tue Aug 1 2007 Steven Dake <sdake at redhat.com> - 0.80.3-2
+- Resolves: rhbz#209862
+- Add upstream revision 1406 - Filter commit token when it is retransmitted.
+- Resolves: rhbz#249506
+- Add upstream revision 1407 - Reset consensus array on entering operational mode.
+- Resolves: rhbz#249509
+- Add upstream revision 1408 - Store the ring id information properly when it changes.
+- Resolves: rhbz#247733
+- Add upstream revision 1409 - Add subtractor to availability of message entries for the totem message queue
+- This is the rhel5 version of 0.80.3-0 with some upstream patches.
+
 * Tue Jun 26 2007 Steven Dake <sdake at redhat.com> - 0.80.3-1
 - Resolves: rhbz#243119
 - Resolves: rhbz#221190
@@ -177,7 +209,7 @@
 - Resolves: rhbz#233892
 - Resolves: rhbz#236549
 - New upstream version including all previous revisions.
-- Tihs is the fc6 version of 0.80.3-1.
+- This is the fc6 version of 0.80.3-1.
 
 * Tue Jun 26 2007 Steven Dake <sdake at redhat.com> - 0.80.3-0
 - Resolves: rhbz#243119




More information about the fedora-cvs-commits mailing list