[infinispan-dev] Question about ISPN-2376 "KeyAffinityServiceImpl.getKeyForAddress() seems to loop forever when DefaultConsistentHash is created for the non-local node owner"

Scott Marlow smarlow at redhat.com
Tue Oct 9 23:20:58 EDT 2012


I'm trying to understand more about whether it makes sense for a 
DefaultConsistentHash to be created with a non-local owner specified in 
the DefaultConsistentHash constructor "segmentOwners" parameter.

During some AS7 cluster testing that I'm running on my machine, I'm 
seeing the test stall because we loop endlessly in 
KeyAffinityServiceImpl.getKeyForAddress().  We loop because 
KeyAffinityServiceImpl.generateKeys() doesn't add any keys.

We don't generate any keys because 
DefaultConsistentHash.locatePrimaryOwnerForSegment() returns address 
"node-1/web" which never matches the local nodes filter 
(KeyAffinityServiceImpl.interestedInAddress() only filters for local 
owners via "node-0/web").

http://pastie.org/5027574 shows the call stack for the 
DefaultConsistentHash constructor that is the same instance that is used 
above.  If you look at the call stack, it looks like the 
DefaultConsistentHash instance may of being serialized on the other node 
and sent over (which would explain why its owner is "node-1/web" but 
still not sure why/how it comes into play with local 
KeyAffinityServiceImpl.generateKeys()).

Scott




More information about the infinispan-dev mailing list