Explorar o código

Fix problem in synchronization engine which results in possible failures of
the synchronization engine.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1424 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake %!s(int64=18) %!d(string=hai) anos
pai
achega
ca24b42838
Modificáronse 2 ficheiros con 12 adicións e 7 borrados
  1. 7 7
      exec/ckpt.c
  2. 5 0
      exec/sync.c

+ 7 - 7
exec/ckpt.c

@@ -827,13 +827,6 @@ static void ckpt_confchg_fn (
 	}
 	}
 	
 	
 	my_lowest_nodeid = 0xffffffff;
 	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
 	 * Handle regular configuration
@@ -844,6 +837,13 @@ static void ckpt_confchg_fn (
 		my_member_list_entries = member_list_entries;
 		my_member_list_entries = member_list_entries;
 		memcpy (&my_saved_ring_id, ring_id,
 		memcpy (&my_saved_ring_id, ring_id,
 			sizeof (struct memb_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];
+			}
+		}
 	}
 	}
 }
 }
 
 

+ 5 - 0
exec/sync.c

@@ -522,6 +522,11 @@ static void sync_confchg_fn (
 
 
 	ENTER("");
 	ENTER("");
 
 
+	if (configuration_type != TOTEM_CONFIGURATION_REGULAR) {
+		LEAVE("");
+		return;
+	}
+
 	/*
 	/*
 	 * Save current members and ring ID for later use
 	 * Save current members and ring ID for later use
 	 */
 	 */