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

Gary Tully commented on AMQ-4898:
---------------------------------

this points to pfc and transactions not working well. the send is blocked and 
resumed while the transaction completes.

think pfc should be disabled for transactions and the connection should block, 
such that the commit/rollback is serialized.
pfc or sendfailIfNoSpace should mark the transaction as rollback only, to 
indicate the lack of coordination between the sends and completion.

> LocalTransaction PRE COMMIT FAILED:  java.util.ConcurrentModificationException
> ------------------------------------------------------------------------------
>
>                 Key: AMQ-4898
>                 URL: https://issues.apache.org/jira/browse/AMQ-4898
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.9.0
>            Reporter: Gary Tully
>             Fix For: 5.10.0
>
>
> Noticed this once from 
> org.apache.activemq.bugs.AMQ4485NetworkOfXBrokersWithNDestsFanoutTransactionTest
> the asyncSend that registers a sync in doMessageSend and transaction 
> completion needs some coordination.
> {code}
> 2013-11-20 12:32:12,324 [0.1:61149@61602] - WARN  LocalTransaction            
>    - PRE COMMIT FAILED: 
> java.util.ConcurrentModificationException
>       at 
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>       at java.util.AbstractList$Itr.next(AbstractList.java:343)
>       at 
> org.apache.activemq.transaction.Transaction.fireBeforeCommit(Transaction.java:118)
>       at 
> org.apache.activemq.transaction.Transaction.doPreCommit(Transaction.java:180)
>       at 
> org.apache.activemq.transaction.Transaction$1.call(Transaction.java:49)
>       at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:1197)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase$10.visit(MessageDatabase.java:1062)
>       at 
> org.apache.activemq.store.kahadb.data.KahaCommitCommand.visit(KahaCommitCommand.java:130)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:1044)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:951)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:931)
>       at 
> org.apache.activemq.store.kahadb.KahaDBTransactionStore.commit(KahaDBTransactionStore.java:297)
>       at 
> org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:70)
>       at 
> org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:253)
>       at 
> org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:112)
>       at 
> org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:427)
>       at 
> org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100)
>       at 
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:295)
>       at 
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:152)
>       at 
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>       at 
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>       at 
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
>       at 
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
>       at 
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
>       at java.lang.Thread.run(Thread.java:695){code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to