[jbosscache-issues] [JBoss JIRA] Commented: (JBCACHE-1549) Buddy pool tracking when 2nd to last member leaves group

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Mon Oct 12 18:33:05 EDT 2009


    [ https://jira.jboss.org/jira/browse/JBCACHE-1549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12489449#action_12489449 ] 

Brian Stansberry commented on JBCACHE-1549:
-------------------------------------------

I have added method testStateTransferOnBuddyRestart() to Buddy2NodesNoBuddyPoolTest. Very simple test that shows the problem.

Commenting out the block shown in the JIRA description allows the test to pass. I'll run the whole test suite to see if that breaks anything else. If not, for sure some more subtle mechanism needs to be found to deal with the condition described in that comment.

> Buddy pool tracking when 2nd to last member leaves group
> --------------------------------------------------------
>
>                 Key: JBCACHE-1549
>                 URL: https://jira.jboss.org/jira/browse/JBCACHE-1549
>             Project: JBoss Cache
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Buddy Replication
>    Affects Versions: 3.2.1.GA
>            Reporter: Brian Stansberry
>            Assignee: Manik Surtani
>            Priority: Critical
>
> If you have a 2 node cluster with buddy replication, and you restart one node, that node does not receive a state transfer. See forum thread for details of the exact symptoms.
> Problem is this in BuddyManager$AsyncViewHandlerThread.handleEnqueuedViewChange():
>          // there is a strange case where JGroups issues view changes and just includes self in new views, and then
>          // quickly corrects it.  Happens intermittently on some unit tests.  If this is such a case, please ignore.
>          if (members.newMembers.size() == 1 && members.newMembers.get(0).equals(cache.getLocalAddress()))
>          {
>             log.info("Ignoring membership change event since it only contains self.");
>             return;
>          }
> Problem is the if condition is always true when the 2nd to last member leaves the group, but returning leaves the last member in a state where it thinks the next to last member is still a buddy. When that node restarts and rejoins the group, the reassign buddies logic sees that the new member is already a buddy and returns without pushing state.

-- 
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 jbosscache-issues mailing list