[jboss-jira] [JBoss JIRA] Commented: (JGRP-863) GroupRequest: only remove don't add members on view changes

Bela Ban (JIRA) jira-events at lists.jboss.org
Fri Nov 14 10:54:36 EST 2008


    [ https://jira.jboss.org/jira/browse/JGRP-863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12438476#action_12438476 ] 

Bela Ban commented on JGRP-863:
-------------------------------

Todo: change the sleep between RPCs from 2000 to 500 (more likely to produce the error)

> GroupRequest: only remove don't add members on view changes
> -----------------------------------------------------------
>
>                 Key: JGRP-863
>                 URL: https://jira.jboss.org/jira/browse/JGRP-863
>             Project: JGroups
>          Issue Type: Bug
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>             Fix For: 2.6.8, 2.7
>
>         Attachments: TestNode.java
>
>
> When we have cluster {A,B,C} and invoke an RPC (via RpcDispatcher), then the target membership will be {A,B,C} and we block until we have responses from A, B and C (or a timeout).
> If the timeout is 0 (= wait forever), and we created a GroupRequest in MessageDispatcher.castMessage() (called from RpcDispatcher.callRemoteMethods()), then the request is sent down the stack.
> If just at this moment - after the request was sent, but before we received all responses - a new member D joined and we get {A,B,C,D}, then the expected responses hashmap in GroupRequest is modified and D *added*. This means, we will wait for D's response although it never actually received the request, resulting in a block !
> SOLUTION: view changes can only *remove* but not *add* elements in the GroupRequest's hashmap, e.g. if B left while waiting for responses, then B's entry would be removed (or marked as 'received' or 'suspected', TBD).
> Another thing to look into is whether we want to ship the target destination list with a request and have members drop the request if they are not part of that list. One could argue that this should only be done at the caller's side

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list