Really nice catch! I've merged this patch. -steve On 11/26/2011 02:42 AM, Yunkai Zhang wrote: > Accordig the totem protocal, nodes should enter GATHER state when it > receive JoinMSG in OPERATIONAL state. If we discard it in OPERATIONAL > state, the nodes sending this JoinMSG could not receive the response > untill other nodes reach token lost timeout. > > This bug will cause nodes having entered GATHER state spend more time to > rejoin the ring, and then it will make nodes reach token expired timeout > more easily. > > Signed-off-by: Yunkai Zhang <qiushu.zyk@xxxxxxxxxx> > --- > exec/totemsrp.c | 8 +++++--- > 1 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/exec/totemsrp.c b/exec/totemsrp.c > index 60e5663..db4e3bb 100644 > --- a/exec/totemsrp.c > +++ b/exec/totemsrp.c > @@ -4054,7 +4054,7 @@ static void memb_join_process ( > > memb_state_commit_enter (instance); > } else { > - return; > + goto out; > } > } else > if (memb_set_subset (proc_list, > @@ -4067,12 +4067,12 @@ static void memb_join_process ( > instance->my_failed_list, > instance->my_failed_list_entries)) { > > - return; > + goto out; > } else > if (memb_set_subset (&memb_join->system_from, 1, > instance->my_failed_list, instance->my_failed_list_entries)) { > > - return; > + goto out; > } else { > memb_set_merge (proc_list, > memb_join->proc_list_entries, > @@ -4117,6 +4117,8 @@ static void memb_join_process ( > memb_state_gather_enter (instance, 11); > gather_entered = 1; > } > + > +out: > if (gather_entered == 0 && > instance->memb_state == MEMB_STATE_OPERATIONAL) { > _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss