[
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