There is an assertion in totemsrp.c to ensure my_proc_list[0] doesn't equal my_proc_list[1]. At one time there was a bug where this would happen and the assertion was added to ensure the bug didn't reappear. Unfortunately the assertion assumes my_proc_list_entries is 2. In the case where my_proc_list_entries is 1, it is possible under extremely rare circumstances (membership goes from > 1 to 1, and my_proc_list[1] contains the same entry as my_proc_list[0] an incorrect assertion will occur.
The solution is simply to remove these invalid assertions.
Index: totemsrp.c =================================================================== --- totemsrp.c (revision 2639) +++ totemsrp.c (working copy) @@ -1804,7 +1804,6 @@ memb_set_merge ( &instance->my_id, 1, instance->my_proc_list, &instance->my_proc_list_entries); - assert (srp_addr_equal (&instance->my_proc_list[0], &instance->my_proc_list[1]) == 0); memb_join_message_send (instance); @@ -2910,7 +2909,6 @@ memb_join->header.nodeid = instance->my_id.addr[0].nodeid; assert (memb_join->header.nodeid); - assert (srp_addr_equal (&instance->my_proc_list[0], &instance->my_proc_list[1]) == 0); memb_join->ring_seq = instance->my_ring_id.seq; memb_join->proc_list_entries = instance->my_proc_list_entries; memb_join->failed_list_entries = instance->my_failed_list_entries;
_______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
