[infinispan-dev] rehashing hazard

Mircea Markus mircea.markus at jboss.com
Fri Oct 22 07:14:35 EDT 2010


On 22 Oct 2010, at 12:07, Manik Surtani wrote:

> 
> On 21 Oct 2010, at 22:54, Mircea Markus wrote:
> 
>> Hi,
>> 
>> ISPN-180 requires some significant code changes around re-hashing, so I've decided to make the rehashing-related test suite more stable before changing the code.
>> I've fixed some, but transactional rehash tests are still failing. Here is why:
>> 
>> {A,B,C, D}, num owners= 2. A's state is {(k,v)} and a transactions is prepared with {(k, otherValue)} on A.
>> B crashes.
>> two things happen with A's state: 
>> 1. on C an thread pulls state from A
>> 2. A sends transaction state to C on another thread
>> 
>> Whit the right timing:
>> - 2 executes first (tx log is drained)
>> - tx commits - this applies the changes on C as well 
>> - 1 executes last 
>> Data ends up inconsistent:
>> A's states is {(k, otherValue)} while C's state is  {(k,v)} 
>> 
>> State transfer and tx log needs to be sequential (not parallel).
> 
> But it is sequential.
> 
> http://fisheye.jboss.org/browse/Infinispan/branches/4.2.x/core/src/main/java/org/infinispan/distribution/InvertedLeaveTask.java?r=2351#l83
no :) 
The operations that need to be sequential are state transfer and tx log transfer. 
State is being *pulled* by C (thread running on C) and tx log is *pushed* by A (thread running on A). Two threads running in different VMs. 
> 
> Or is this not the case anymore, since Vladimir inverted the LeaveTask?  Vladimir, can you confirm that these 2 actions (providing state and flushing/tx logs) happen in the same thread?
> 
>> The easy way to achieve this is  to only do push, i.e. A sends the state and then drains tx log.
>> This can be reproduce by running ConcurrentNonOverlappingLeaveTest.testTransactional (fails aprox 1/5)
>> 
>> Cheers,
>> Mircea
>> 
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> --
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
> 
> 
> 
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev




More information about the infinispan-dev mailing list