On 6 Jun 2013, at 10:09, Dan Berindei <dan.berin...@gmail.com> wrote:

> Say you have two transactions, tx1 and tx2. They both send a 
> LockControlCommand(k1) to the primary owner of k1 (let's call it B).
> If the lock commands use SYNCHRONOUS_IGNORE_LEAVERS and B dies while 
> processing the commands, both tx1 and tx2 will think they have succeeded in 
> locking k1.
> 
> So you're right, everything should be locked before prepare in pessimistic 
> mode, but LockControlCommands are also susceptible to SuspectExceptions. On 
> the other hand, you can use SYNCHRONOUS mode for LockControlCommands and you 
> can just retry the transaction in case of a SuspectException. 
> 
> Unfortunately, you can't retry the transaction if the PrepareCommand fails 
> (in pessimistic mode; or the CommitCommand in optimistic mode), because it is 
> executed in the commit phase. The transaction manager swallows all the 
> exceptions in the commit phase, making it impossible to see if it failed 
> because of a node leaving. I guess this means I should increase the priority 
> of https://issues.jboss.org/browse/ISPN-2402 ...
+1 for increasing the priority. A bit too late for 5.3.0 stream though, as this 
is a rather large change.
Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)





_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to