Region activation requests partial state transfer from wrong nodes
------------------------------------------------------------------
Key: JBCACHE-1234
URL:
http://jira.jboss.com/jira/browse/JBCACHE-1234
Project: JBoss Cache
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering
Affects Versions: 2.1.0.CR2, 1.4.1.SP7, 2.0.0.GA
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Priority: Critical
Fix For: 1.4.1.SP8, 2.1.0.GA
When requesting partial state transfer as part of activating a region, we are asking for
state from the wrong nodes:
// Get the state from each DataOwner and integrate in their
// respective buddy backup cache
List<Address> buddies = buddyManager.getBuddyAddresses();
for (Address buddy : buddies)
{
List<Address> sources = new ArrayList<Address>(1);
sources.add(buddy);
Fqn buddyRoot = BuddyManager.getBackupFqn(buddy, fqn);
subtreeRoot = cache.findNode(buddyRoot);
....
cache.fetchPartialState(sources, fqn, subtreeRoot.getFqn());
}
}
BuddyManager.getBuddyAddresses() returns the nodes who are backing up *our* data, not
those for whom we are serving as a buddy. We want the state for the latter. This comes
from the package-private BuddyManager.buddyGroupsIParticipateIn field, so BuddyManager is
going to have to expose that somehow.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira