You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/12/20 14:39:00 UTC

[jira] [Commented] (AMQ-8400) ConcurrentModificationException in Transaction.java

    [ https://issues.apache.org/jira/browse/AMQ-8400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17462648#comment-17462648 ] 

ASF subversion and git services commented on AMQ-8400:
------------------------------------------------------

Commit b196e9a88a5e221c96346c5ec23c0029bde0fc91 in activemq's branch refs/heads/main from Matt Pavlovich
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=b196e9a ]

[AMQ-8400] Add synchronization handling for Transaction to prevent CME (#720)



> ConcurrentModificationException in Transaction.java
> ---------------------------------------------------
>
>                 Key: AMQ-8400
>                 URL: https://issues.apache.org/jira/browse/AMQ-8400
>             Project: ActiveMQ
>          Issue Type: Task
>          Components: Broker
>    Affects Versions: 5.15.15
>            Reporter: Matt Pavlovich
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>             Fix For: 5.17.0, 5.15.16, 5.16.4
>
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> With LoggingBrokerPlugin enabled:
> {noformat}
> 2021-10-08T13:21:06,201 | WARN  | ActiveMQ NIO Worker 394 | LocalTransaction                 | 71 - org.apache.activemq.activemq-osgi - 5.15.15 | POST COMMIT FAILED:
> java.util.ConcurrentModificationException: null
>         at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043) ~[?:?]
>         at java.util.ArrayList$Itr.next(ArrayList.java:997) ~[?:?]
>         at org.apache.activemq.transaction.Transaction.fireAfterCommit(Transaction.java:132) ~[?:?]
>         at org.apache.activemq.transaction.Transaction.doPostCommit(Transaction.java:201) ~[?:?]
>         at org.apache.activemq.transaction.Transaction$2.call(Transaction.java:59) ~[?:?]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
>         at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:1156) ~[?:?]
>         at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:1116) ~[?:?]
>         at org.apache.activemq.store.kahadb.KahaDBTransactionStore.commit(KahaDBTransactionStore.java:301) ~[?:?]
>         at org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:70) ~[?:?]
>         at org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:252) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.util.LoggingBrokerPlugin.commitTransaction(LoggingBrokerPlugin.java:203) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:538) ~[?:?]
>         at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:336) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200) ~[?:?]
>         at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) ~[?:?]
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:77) ~[?:?]
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125) ~[?:?]
>         at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301) ~[?:?]
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.doConsume(NIOSSLTransport.java:501) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.processCommand(NIOSSLTransport.java:364) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.serviceRead(NIOSSLTransport.java:279) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport$1.onSelect(NIOSSLTransport.java:175) ~[?:?]
>         at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:98) ~[?:?]
>         at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:123) ~[?:?]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
>         at java.lang.Thread.run(Thread.java:829) [?:?]
> 2021-10-08T13:21:06,202 | WARN  | ActiveMQ NIO Worker 394 | LocalTransaction                 | 71 - org.apache.activemq.activemq-osgi - 5.15.15 | Store COMMIT FAILED:
> javax.transaction.xa.XAException: POST COMMIT FAILED xaErrorCode:-3
>         at org.apache.activemq.transaction.Transaction.newXAException(Transaction.java:213) ~[?:?]
>         at org.apache.activemq.transaction.Transaction.doPostCommit(Transaction.java:206) ~[?:?]
>         at org.apache.activemq.transaction.Transaction$2.call(Transaction.java:59) ~[?:?]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
>         at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:1156) ~[?:?]
>         at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:1116) ~[?:?]
>         at org.apache.activemq.store.kahadb.KahaDBTransactionStore.commit(KahaDBTransactionStore.java:301) ~[?:?]
>         at org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:70) ~[?:?]
>         at org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:252) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.util.LoggingBrokerPlugin.commitTransaction(LoggingBrokerPlugin.java:203) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:114) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:538) ~[?:?]
>         at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:336) ~[?:?]
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:200) ~[?:?]
>         at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) ~[?:?]
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:77) ~[?:?]
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:125) ~[?:?]
>         at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:301) ~[?:?]
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.doConsume(NIOSSLTransport.java:501) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.processCommand(NIOSSLTransport.java:364) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport.serviceRead(NIOSSLTransport.java:279) ~[?:?]
>         at org.apache.activemq.transport.nio.NIOSSLTransport$1.onSelect(NIOSSLTransport.java:175) ~[?:?]
>         at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:98) ~[?:?]
>         at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:123) ~[?:?]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
>         at java.lang.Thread.run(Thread.java:829) [?:?]
> Caused by: java.util.ConcurrentModificationException
>         at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043) ~[?:?]
>         at java.util.ArrayList$Itr.next(ArrayList.java:997) ~[?:?]
>         at org.apache.activemq.transaction.Transaction.fireAfterCommit(Transaction.java:132) ~[?:?]
>         at org.apache.activemq.transaction.Transaction.doPostCommit(Transaction.java:201) ~[?:?]
>         ... 32 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)