[infinispan-dev] DistributionManagerImpl.rehash()

Manik Surtani manik at jboss.org
Tue Feb 1 02:18:59 EST 2011


This is a bug, but it isn't in handling joiners.  Join is a pull process, so existing members only detect joiners and log it - nothing "important" happens with the results of MembershipArithmetic.getMemberJoined().

MembershipArithmetic.getMemberLeft(), OTOH, is important - and has a similar bug.  This is odd, because we also have MembershipArithmetic.getMembersLeft() (MembershipArithmetic.getMembersJoined()) - which return all affected members, not just the first one - but these seem unused for some reason.  

I'll investigate.  Thanks for pointing this out.

Cheers
Manik

On 31 Jan 2011, at 14:25, Bela Ban wrote:

> I see that this method calls MembershipArithmetic.getMemberJoined(), 
> which returns the newly joined member. This is done by removing the 
> existing members from the new members, and returning the first element 
> of the remaining list.
> 
> However, when we have view V1={A,B} and V2={A,B,C,D}, then the method 
> getMemberJoined() returns C, but skips D.
> 
> It seems to me that this logic is based on the assumption that JGroups 
> only ever joins and removes 1 member at a time, but this is not correct, 
> as JGroups can join multiple new members, or remove multiple members at 
> once, too.
> 
> Can you guys take a look ?
> 
> -- 
> Bela Ban
> Lead JGroups / Clustering Team
> JBoss
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Lead, Infinispan
http://www.infinispan.org






More information about the infinispan-dev mailing list