On 9 Jan 2012, at 13:36, Manik Surtani wrote: > > On 9 Jan 2012, at 10:50, Mircea Markus wrote: > >> >> On 7 Jan 2012, at 18:57, Manik Surtani wrote: >> >>> After spending some hours on ISPN-1284, I think we have a few conceptual >>> problems with using Synchronizations. >>> >>> Here is the topic branch containing my work: >>> >>> https://github.com/maniksurtani/infinispan/tree/t_1284 >>> >>> So far what I have done is: >>> >>> * Changed defaults >>> * Changed config validations to emit a warning and disable synchronisations >>> if recovery is enabled >>> * Update some tests that rely on XA to specifically set synchronisations to >>> false >>> >>> But there are still some issues, and what specifically worry me is >>> behaviour demonstrated by these two test failures: >>> >>> testModsCommit(org.infinispan.lock.StaleEagerLocksOnPrepareFailureTest) >>> testNoModsCommit(org.infinispan.lock.StaleEagerLocksOnPrepareFailureTest) >>> >>> They both attempt to abort a transaction by throwing an exception during >>> prepare. Now since we use Synchronizations by default, these failures do >>> *not* abort the transaction since it is only seen by the >>> SynchronizationAdapter in afterCommit(). Where does this stand, >>> conceptually? With optimistic transactions, locks may not be able to be >>> acquired at prepare-time. These transactions should fail. >> With pessimistic transactions, the first phase of 2PC is skipped: that is >> because locks are acquired and modifications propagated at this stage. So >> beforeCompletion doesn't do anything. >> However in the case of optimistic transactions the prepare happens during >> beforeCompletion and it would fail causing the tx to roll back. > > So Synchronizations and pessimistic locking are incompatible? :) Well this is very similar to what happens in the case of optimistic locking when the CommitCommand cannot be broadcasted: the transaction silently fails.
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev