Hi All, It seems that I found a bug of ykd. By reviewing the code of ykd, I can not find any place where the ykd_state.ambiguous_sessions[ykd_state.ambiguous_sessions_entries].session_id got be set to a vaid value. But compute() uses it to calculate the ambiguous_sessions_max array. I have read the paper of ykd and I think it should be initialized every time when ykd finish its send_state step and before sending the ATTEMPT message. So the patch is as following: diff -ruNp corosync-1.4.5-orig/exec/vsf_ykd.c corosync-1.4.5/exec/vsf_ykd.c --- corosync-1.4.5-orig/exec/vsf_ykd.c 2013-03-14 20:31:57.621979531 +0800 +++ corosync-1.4.5/exec/vsf_ykd.c 2013-03-14 20:31:45.447914042 +0800 @@ -425,6 +425,7 @@ static void ykd_deliver_fn ( memcpy (ykd_state.ambiguous_sessions[ykd_state.ambiguous_sessions_entries].member_list, ykd_view_list, sizeof (unsigned int) * ykd_view_list_entries); ykd_state.ambiguous_sessions[ykd_state.ambiguous_sessions_entries].member_list_entries = ykd_view_list_entries; + ykd_state.ambiguous_sessions[ykd_state.ambiguous_sessions_entries].session_id = ykd_state.session_id; ykd_state.ambiguous_sessions_entries += 1; ykd_attempt_send(); } I am not very good at this dynamic voting algorithms, please help to take a look at this problem. Thank you! -- Yours, Jason _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss