Skip to content

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

@anatoly-spb

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions