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:
- Open UserTransaction
- Invoke several store procedures (PostgreSQL JDBC 42.7.4 org.postgresql.xa.PGXADataSource)
- 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.
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 backgroundTo Reproduce
Steps to reproduce the behavior:
transactions.properties:
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.