On 12/13/2011 12:44 AM, Yunkai Zhang wrote: > Hi Steven Dake: > > How do you think about this patch v2? > > According our analysis above, I think this patch is useful. > With any totem patches in a stable branch there needs to be a failure (segfault, improper membership behavior, message loss) preferably with a test case. I am super leary of making _any_ changes to this code without significant motivation. Regards -steve > On Mon, Dec 12, 2011 at 6:07 PM, Yunkai Zhang <qiushu.zyk@xxxxxxxxxx> wrote: >> After the representative of the new ring entered into RECOVERY state, >> it was waiting for the commit_token on the second rotation. But when >> it got a new commit_token, it didn't check the status of this token >> which could be retransmitted by upstream node on the first rotation, >> and then the representative node would send the initial ORF token >> prematurely. >> >> Signed-off-by: Yunkai Zhang <qiushu.zyk@xxxxxxxxxx> >> --- >> exec/totemsrp.c | 4 +++- >> 1 files changed, 3 insertions(+), 1 deletions(-) >> >> diff --git a/exec/totemsrp.c b/exec/totemsrp.c >> index 5a78962..7a4be95 100644 >> --- a/exec/totemsrp.c >> +++ b/exec/totemsrp.c >> @@ -4372,7 +4372,9 @@ static int message_handler_memb_commit_token ( >> break; >> >> case MEMB_STATE_RECOVERY: >> - if (totemip_equal (&instance->my_id.addr[0], &instance->my_ring_id.rep)) { >> + if (totemip_equal (&instance->my_id.addr[0], &instance->my_ring_id.rep) && >> + memb_commit_token->ring_id.seq == instance->my_ring_id.seq && >> + memb_commit_token->token_seq == 2*memb_commit_token->addr_entries) { >> log_printf (instance->totemsrp_log_level_debug, >> "Sending initial ORF token\n"); >> >> -- >> 1.7.7.3 >> > > > _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss