[ 
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

Reply via email to