Re: [PATCH] Discard token if foreign mcast message received during totemrrp_recv_flush

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I haven't noticed totemrrp_recv_flush will call net_deliver_fn finally.

You make me suddenly see the light, exciting patch!

On Mon, Dec 12, 2011 at 11:12 PM, Steven Dake <sdake@xxxxxxxxxx> wrote:
> Flush of regular mcast messages could trigger entry into gather state if the
> regular mcast message in the kernel buffers contained a foriegn message.  This
> should set orf_token_dicard to 1.  Unfortunately if this happens, the following
> ORF tokens in the kernel buffer that are flushed should be rejected.  Since
> the flush occurs after the check for orf_token_discard==1, the orf token is
> not rejected.
>
> Signed-off-by: Steven Dake <sdake@xxxxxxxxxx>
> ---
>  exec/totemsrp.c |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/exec/totemsrp.c b/exec/totemsrp.c
> index 5a78962..9c7b01d 100644
> --- a/exec/totemsrp.c
> +++ b/exec/totemsrp.c
> @@ -3451,9 +3451,6 @@ static int message_handler_orf_token (
>        "Time since last token %0.4f ms\n", ((float)tv_diff) / 1000000.0);
>  #endif
>
> -       if (instance->orf_token_discard) {
> -               return (0);
> -       }
>  #ifdef TEST_DROP_ORF_TOKEN_PERCENTAGE
>        if (random()%100 < TEST_DROP_ORF_TOKEN_PERCENTAGE) {
>                return (0);
> @@ -3499,6 +3496,16 @@ static int message_handler_orf_token (
>        totemrrp_recv_flush (instance->totemrrp_context);
>
>        /*
> +        * Discard orf tokens in GATHER/COMMIT after recv_flush operation.
> +        *
> +        * It is possible a foreign message caused a shift to the GATHER
> +        * state.
> +        */
> +       if (instance->orf_token_discard) {
> +               return (0);
> +       }
> +
> +       /*
>         * Determine if we should hold (in reality drop) the token
>         */
>        instance->my_token_held = 0;
> --
> 1.7.7.3
>
> _______________________________________________
> discuss mailing list
> discuss@xxxxxxxxxxxx
> http://lists.corosync.org/mailman/listinfo/discuss



-- 
Yunkai Zhang
Work at Taobao
_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss



[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux