Skip to content

transactions-4.0.6: ABORTING incompatible with new entry: COMMITTING - recovery will clean up in the background #239

Description

@anatoly-spb

Describe the bug
Sometimes there is error is occurred during commit: Existing entry: ABORTING incompatible with new entry: COMMITTING - recovery will clean up in the background

To Reproduce
Steps to reproduce the behavior:

  1. Open UserTransaction
  2. Invoke several store procedures (PostgreSQL JDBC 42.7.4 org.postgresql.xa.PGXADataSource)
  3. Commit UserTransaction, but instead success there is Existing entry: ABORTING incompatible with new entry: COMMITTING - recovery will clean up in the background error:
Error in committing: Existing entry: ABORTING incompatible with new entry: COMMITTING - recovery will clean up in the background

java.lang.IllegalStateException: Existing entry: ABORTING incompatible with new entry: COMMITTING
   at com.atomikos.recovery.imp.OltpLogImp.assertEntryIsAllowedInCurrentState(OltpLogImp.java:43) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.recovery.imp.OltpLogImp.write(OltpLogImp.java:30) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.persistence.imp.StateRecoveryManagerImp.preEnter(StateRecoveryManagerImp.java:51) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.finitestates.FSMImp.notifyListeners(FSMImp.java:164) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.finitestates.FSMImp.setState(FSMImp.java:251) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CoordinatorImp.setState(CoordinatorImp.java:312) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CoordinatorStateHandler.commitFromWithinCallback(CoordinatorStateHandler.java:346) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.IndoubtStateHandler$1.doCommit(IndoubtStateHandler.java:112) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CoordinatorStateHandler.commitWithAfterCompletionNotification(CoordinatorStateHandler.java:581) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.IndoubtStateHandler.commit(IndoubtStateHandler.java:107) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:548) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:690) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:282) ~[transactions-4.0.6.jar!/:na]
   at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:172) ~[transactions-jta-4.0.6.jar!/:na]
   at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:414) ~[transactions-jta-4.0.6.jar!/:na]
   at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:86) ~[transactions-jta-4.0.6.jar!/:na]
   at ru.rlisystems.api.tx.DistributedConterraTransaction$TransactionActor.commit(DistributedConterraTransaction.java:175) ~[classes!/:2.3.0]
   at ru.rlisystems.api.tx.DistributedConterraTransaction$TransactionActor.lambda$createReceive$1(DistributedConterraTransaction.java:151) ~[classes!/:2.3.0]
   at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at scala.PartialFunction.applyOrElse(PartialFunction.scala:127) ~[scala-library-2.12.15.jar!/:na]
   at scala.PartialFunction.applyOrElse$(PartialFunction.scala:126) ~[scala-library-2.12.15.jar!/:na]
   at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:175) ~[scala-library-2.12.15.jar!/:na]
   at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:176) ~[scala-library-2.12.15.jar!/:na]
   at akka.actor.Actor.aroundReceive(Actor.scala:537) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.actor.Actor.aroundReceive$(Actor.scala:535) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:220) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.actor.ActorCell.invoke(ActorCell.scala:548) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at akka.dispatch.Mailbox.run(Mailbox.scala:231) ~[akka-actor_2.12-2.6.19.jar!/:2.6.19]
   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na]
   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
   at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

transactions.properties:

com.atomikos.icatch.max_timeout=9223372036854775807
com.atomikos.icatch.max_actives = 256
com.atomikos.icatch.enable_logging=true
com.atomikos.icatch.force_shutdown_on_vm_exit = false
com.atomikos.icatch.allow_subtransactions=false

What is the cause of this error?

Additional context

I understand that this project is not intended for support - because bug reports may or may not be considered for inclusion some day (in a future release). If this is issue is important to me then I can go to https://www.atomikos.com/Main/SupportOverview and arrange a paid support subscription.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions