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

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


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.7, 2.7


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