]
Brian Stansberry closed JBCACHE-1234.
-------------------------------------
Resolution: Done
Added method BuddyManager.getBackupDataOwners() to provide the correct set. Added a bit
to BuddyAssignmentStateTransferTest.testRegionBasedStateTransfer() to test for this
problem.
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.0.0.GA, 1.4.1.SP7, 2.1.0.CR2
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: