Stephen Fikes created ISPN-5927:
-----------------------------------
Summary: Infinispan calling setRollbackOnly() when detecting write skew
Key: ISPN-5927
URL:
https://issues.jboss.org/browse/ISPN-5927
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 6.0.2.Final
Reporter: Stephen Fikes
In the context of Java Data Grid, when Infinispan detects write skew [#write-skew] during
prepare, it invokes {{setRollbackOnly()}} on the transaction implementation
[#set-rollback]. This results in an exception
({{com.arjuna.ats.jta.exceptions.InvalidTerminationStateException: ARJUNA016064: The
transaction is in an invalid state!}}) because this operation is disallowed by Arjuna
while in the {{PREPARING}} state. The result is that the causal error
({{org.infinispan.transaction.WriteSkewException}}) is lost and the error that propagates
indicates the "invalid state" is actually the cause of the failed transaction.
h3. {anchor:write-skew}Write skew exception
... org.infinispan.transaction.WriteSkewException: Write skew detected on key <key>
for transaction TransactionImple < ... status: ActionStatus.PREPARING >
at
org.infinispan.transaction.WriteSkewHelper.performWriteSkewCheckAndReturnNewVersions(WriteSkewHelper.java:53)
...
at
org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:104)
at
org.infinispan.transaction.xa.TransactionXaAdapter.prepare(TransactionXaAdapter.java:92)
at
com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelPrepare(XAResourceRecord.java:213)
...
h3. {anchor:set-rollback}Set Rollback
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.setRollbackOnly(TransactionImple.java:313)
at
org.infinispan.interceptors.InvocationContextInterceptor.markTxForRollbackAndRethrow(InvocationContextInterceptor.java:163)
...
at
org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:103)
...
at
org.infinispan.transaction.xa.TransactionXaAdapter.prepare(TransactionXaAdapter.java:92)
at
com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelPrepare(XAResourceRecord.java:213)
...
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)