Totem spec is clear:
reject retransmitted tokens
if token.aru = aru in token on last rotation ... do some logic
Here is how the current code works:
last_aru = instance->my_last_aru;
instance->my_last_aru = token->aru;
reject retransmitted tokens
if token.aru = aru in token on last rotation ... do some logic
The issue is last_aru will be set to token->aru when a token
retransmission occurs before a new token arrives.
This results in the "do some logic" part happening more often then it
should on lossy networks.
Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c (revision 2916)
+++ exec/totemsrp.c (working copy)
@@ -3425,9 +3425,6 @@
*/
case MEMB_STATE_RECOVERY:
- last_aru = instance->my_last_aru;
- instance->my_last_aru = token->aru;
-
/*
* Discard tokens from another configuration
*/
@@ -3468,6 +3465,8 @@
return (0); /* discard token */
}
+ last_aru = instance->my_last_aru;
+ instance->my_last_aru = token->aru;
transmits_allowed = fcc_calculate (instance, token);
mcasted_retransmit = orf_token_rtr (instance, token,
&transmits_allowed);
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais