You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (Resolved) (JIRA)" <ji...@apache.org> on 2012/03/23 19:59:26 UTC

[jira] [Resolved] (AMQ-3768) ClassCastException when running some Durable Consumer test cases

     [ https://issues.apache.org/jira/browse/AMQ-3768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-3768.
-----------------------------

    Resolution: Fixed

final fix in http://svn.apache.org/viewvc?view=rev&rev=1304020

issue was the change of the headPageId for a list, this identity page was not persisted on a change so it could lead to corruption on a restart. The fix is to retain the headPageId for the lifetime of the list.
Issue effects durable subs and possibly non persistent messages in the filepending message cursor as it also uses the listindex.
                
> ClassCastException when running some Durable Consumer test cases
> ----------------------------------------------------------------
>
>                 Key: AMQ-3768
>                 URL: https://issues.apache.org/jira/browse/AMQ-3768
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.6.0
>            Reporter: Timothy Bish
>            Assignee: Gary Tully
>             Fix For: 5.6.0
>
>
> When running the DurableSubProcessWithRestartTest for long intervals you can sometimes see.
> {noformat}
> ERROR rableSubProcessWithRestartTest - Server.run failed
> java.lang.RuntimeException: Server.run failed
> 	at org.apache.activemq.usecases.DurableSubProcessWithRestartTest.exit(DurableSubProcessWithRestartTest.java:738)
> 	at org.apache.activemq.usecases.DurableSubProcessWithRestartTest$Server.run(DurableSubProcessWithRestartTest.java:185)
> Caused by: 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:1297)
> 	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:560)
> 	at org.apache.activemq.usecases.DurableSubProcessWithRestartTest$Server.send(DurableSubProcessWithRestartTest.java:232)
> 	at org.apache.activemq.usecases.DurableSubProcessWithRestartTest$Server.run(DurableSubProcessWithRestartTest.java:179)
> 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:252)
> 	at org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:103)
> 	at org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:414)
> 	at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:291)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:149)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> 	at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
> 	at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassCastException: org.apache.kahadb.index.BTreeNode cannot be cast to org.apache.kahadb.index.ListNode
> 	at org.apache.kahadb.index.ListIndex.loadNode(ListIndex.java:289)
> 	at org.apache.kahadb.index.ListIndex.getHead(ListIndex.java:98)
> 	at org.apache.kahadb.index.ListIndex.iterator(ListIndex.java:266)
> 	at org.apache.kahadb.index.ListIndex.get(ListIndex.java:127)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.addAckLocationForNewMessage(MessageDatabase.java:1826)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.upadateIndex(MessageDatabase.java:1130)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$AddOpperation.execute(MessageDatabase.java:2029)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$18.execute(MessageDatabase.java:1055)
> 	at org.apache.kahadb.page.Transaction.execute(Transaction.java:765)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:1052)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$13.visit(MessageDatabase.java:921)
> 	at org.apache.activemq.store.kahadb.data.KahaCommitCommand.visit(KahaCommitCommand.java:130)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:903)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:815)
> 	at org.apache.activemq.store.kahadb.KahaDBTransactionStore.commit(KahaDBTransactionStore.java:267)
> 	at org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:72)
> 	... 14 more
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira