[ https://issues.apache.org/jira/browse/AMQ-4535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hiram Chirino resolved AMQ-4535. -------------------------------- Resolution: Fixed Fix Version/s: 5.9.0 Assignee: Hiram Chirino Fixed in trunk. Thanks for the bug report! > activemq configured with leveldb commit fail when accessed by PutGet f-tion > from IBM Perf Harness > ------------------------------------------------------------------------------------------------- > > Key: AMQ-4535 > URL: https://issues.apache.org/jira/browse/AMQ-4535 > Project: ActiveMQ > Issue Type: Bug > Components: activemq-leveldb-store, Broker > Affects Versions: 5.8.0 > Environment: RHEL 6.4 > Reporter: Valentina > Assignee: Hiram Chirino > Fix For: 5.9.0 > > Attachments: activemq.xml, amq_test_reproducer.sh > > > Poor performance and exceptions thrown when leveldb is configured with > activemq while performance is measured with IBM Performance Harness. We use > default configuration of activemq except that leveldb is used instead of > kahadb. > Test scenario uses jms.r11.PutGet which sends a message then receives one > from the same queue. Normal usage is with correlation identifier to ensure > the same message is received. > Exception thrown by the broker : > WARN | Store COMMIT FAILED: scala.MatchError: null at > org.apache.activemq.leveldb.DelayableUOW.dequeue(DBManager.scala:282) at > org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.doRemove(LevelDBStore.scala:578) > at > org.apache.activemq.leveldb.LevelDBStore$Transaction$$anon$3.commit(LevelDBStore.scala:328) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1$$anonfun$apply$10.apply(LevelDBStore.scala:381) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1$$anonfun$apply$10.apply(LevelDBStore.scala:380) > at scala.collection.immutable.List.foreach(List.scala:309) at > scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) > at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45) at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1.apply(LevelDBStore.scala:380) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1.apply(LevelDBStore.scala:379) > at org.apache.activemq.leveldb.LevelDBStore.withUow(LevelDBStore.scala:536) > at org.apache.activemq.leveldb.LevelDBStore.commit(LevelDBStore.scala:379) at > org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:72) > at > org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:263) > at > org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:103) > at > org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:456) > at > org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:329) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:184) > 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:288) > 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:722) The transaction does not exist > Exception thrown by the client: > PutGet1: Uncaught exception. javax.jms.JMSException: STORE COMMIT FAILED: > Transaction rolled back. at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) > at > org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1391) > at > org.apache.activemq.TransactionContext.syncSendPacketWithInterruptionHandling(TransactionContext.java:748) > at > org.apache.activemq.TransactionContext.commit(TransactionContext.java:322) at > org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:561) at > com.ibm.uk.hursley.perfharness.jms.r11.PutGet.oneIteration(PutGet.java:97) at > com.ibm.uk.hursley.perfharness.WorkerThread.pace(WorkerThread.java:247) at > com.ibm.uk.hursley.perfharness.WorkerThread.pace(WorkerThread.java:434) at > com.ibm.uk.hursley.perfharness.jms.r11.JMS11WorkerThread.run(JMS11WorkerThread.java:286) > at com.ibm.uk.hursley.perfharness.jms.r11.PutGet.run(PutGet.java:86) Caused > by: javax.transaction.xa.XAException: STORE COMMIT FAILED: Transaction rolled > back. at > org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:77) > at > org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:263) > at > org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:103) > at > org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:456) > at > org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:329) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:184) > 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:288) > 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:722) Caused by: java.lang.Throwable: > scala.MatchError: null at > org.apache.activemq.leveldb.DelayableUOW.dequeue(DBManager.scala:282) at > org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.doRemove(LevelDBStore.scala:578) > at > org.apache.activemq.leveldb.LevelDBStore$Transaction$$anon$3.commit(LevelDBStore.scala:328) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1$$anonfun$apply$10.apply(LevelDBStore.scala:381) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1$$anonfun$apply$10.apply(LevelDBStore.scala:380) > at scala.collection.immutable.List.foreach(List.scala:309) at > scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) > at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45) at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1.apply(LevelDBStore.scala:380) > at > org.apache.activemq.leveldb.LevelDBStore$$anonfun$commit$1.apply(LevelDBStore.scala:379) > at org.apache.activemq.leveldb.LevelDBStore.withUow(LevelDBStore.scala:536) > at org.apache.activemq.leveldb.LevelDBStore.commit(LevelDBStore.scala:379) at > org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:72) > ... 13 more PutGet8: STOP > After the test finished, we had several messages left in queues. We tried to > read them with a different client and not in all cases we succeeded. However, > after the broker restart, we could read the rest of messages. > Our results for performance testing can be found at > http://wiki.test.redhat.com/MRG/Messaging/PerformanceTesting/releases/m26_m29 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira