[infinispan-issues] [JBoss JIRA] (ISPN-5927) Infinispan calling setRollbackOnly() when detecting write skew

Stephen Fikes (JIRA) issues at jboss.org
Fri Nov 6 18:30:00 EST 2015


     [ https://issues.jboss.org/browse/ISPN-5927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stephen Fikes updated ISPN-5927:
--------------------------------
    Description: 
In the context of Java Data Grid, when Infinispan detects [#write-skew] during prepare, it invokes [#setRollbackOnly]() on the transaction implementation. 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:setRollbackOnly}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)
...

  was:
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)
...



> 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] during prepare, it invokes [#setRollbackOnly]() on the transaction implementation. 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:setRollbackOnly}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)


More information about the infinispan-issues mailing list