Просмотр исходного кода

Fixes a condition which would result in a proc set and failed set
being equal which would force the algorithm to never reach
consensus in the membership algorithm.

(Logical change 1.181)


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

Steven Dake 21 лет назад
Родитель
Сommit
0bf800e0db
1 измененных файлов с 4 добавлено и 4 удалено
  1. 4 4
      exec/totemsrp.c

+ 4 - 4
exec/totemsrp.c

@@ -3094,14 +3094,14 @@ if (random () % 100 < 10) {
 				token->aru_addr.s_addr = my_id.sin_addr.s_addr;
 			}
 		}
-		if (token->aru == my_last_aru && token->aru_addr.s_addr != 0) {
+		if (token->aru == last_aru && token->aru_addr.s_addr != 0) {
 			my_aru_count += 1;
 		} else {
 			my_aru_count = 0;
 		}
 
 		if (my_aru_count > FAIL_TO_RECV_CONST &&
-			token->aru_addr.s_addr == my_id.sin_addr.s_addr) {
+			token->aru_addr.s_addr != my_id.sin_addr.s_addr) {
 			
 printf ("FAILED TO RECEIVE\n");
 // TODO if we fail to receive, it may be possible to end with a gather
@@ -3123,8 +3123,8 @@ printf ("FAILED TO RECEIVE\n");
 				 * (ie: its retrans queue is empty)
 				 */
 				low_water = my_aru;
-				if (low_water > my_last_aru) {
-					low_water = my_last_aru;
+				if (low_water > last_aru) {
+					low_water = last_aru;
 				}
 // TODO is this code right
 				if (queue_is_empty (&retrans_message_queue) == 0 ||