Jason, ykd is unfinished so it's highly probable that your patch is correct. If you are interested in digging more into that code, you (patches ;) ) are more then welcomed. Regards, Honza jason napsal(a): > 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! > _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss