activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-3466) IndexOutOfBounds in kahadb with large number of subscriptions and pending messages
Date Tue, 23 Aug 2011 13:36:29 GMT

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

Gary Tully commented on AMQ-3466:
---------------------------------

Workaround is to increase the pageSize for the index, such that large values do not overflow
two pages.

> IndexOutOfBounds in kahadb with large number of subscriptions and pending messages
> ----------------------------------------------------------------------------------
>
>                 Key: AMQ-3466
>                 URL: https://issues.apache.org/jira/browse/AMQ-3466
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>            Reporter: Timothy Bish
>            Assignee: Gary Tully
>             Fix For: 5.6.0
>
>
> When there are several durable subscribers each with a large number of pending messages
to be acked the an error occurs, as well as some others involving ArrayIndexOutOfBoundsExceptions
and NullPointerExceptions while reading or writing the chunk stream.
> {noformat}
> 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:1287)
> 	at org.apache.activemq.TransactionContext.syncSendPacketWithInterruptionHandling(TransactionContext.java:704)
> 	at org.apache.activemq.TransactionContext.commit(TransactionContext.java:299)
> 	at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:560)
> 	at org.apache.activemq.process.TopicWithManySelectorsTest.sendNotification(TopicWithManySelectorsTest.java:126)
> 	at org.apache.activemq.process.TopicWithManySelectorsTest.test(TopicWithManySelectorsTest.java:85)
> 	at org.apache.activemq.process.TopicWithManySelectorsTest.testMass(TopicWithManySelectorsTest.java:42)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at junit.framework.TestCase.runTest(TestCase.java:168)
> 	at junit.framework.TestCase.runBare(TestCase.java:134)
> 	at org.apache.activemq.CombinationTestSupport.runBare(CombinationTestSupport.java:90)
> 	at org.apache.activemq.CombinationTestSupport.runBare(CombinationTestSupport.java:96)
> 	at junit.framework.TestResult$1.protect(TestResult.java:110)
> 	at junit.framework.TestResult.runProtected(TestResult.java:128)
> 	at junit.framework.TestResult.run(TestResult.java:113)
> 	at junit.framework.TestCase.run(TestCase.java:124)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:232)
> 	at junit.framework.TestSuite.run(TestSuite.java:227)
> 	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:94)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:196)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
> 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:173)
> 	at org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:103)
> 	at org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:424)
> 	at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:100)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:311)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
> 	at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:219)
> 	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: javax.transaction.xa.XAException: POST COMMIT FAILED
> 	at org.apache.activemq.transaction.Transaction.doPostCommit(Transaction.java:182)
> 	at org.apache.activemq.transaction.Transaction$2.call(Transaction.java:54)
> 	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.store(MessageDatabase.java:768)
> 	at org.apache.activemq.store.kahadb.KahaDBTransactionStore.commit(KahaDBTransactionStore.java:264)
> 	at org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:72)
> 	... 14 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> 	at java.lang.System.arraycopy(Native Method)
> 	at org.apache.kahadb.page.Transaction$2.read(Transaction.java:494)
> 	at java.io.DataInputStream.readFully(DataInputStream.java:178)
> 	at java.io.DataInputStream.readFully(DataInputStream.java:152)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$HashSetStringMarshaller.readPayload(MessageDatabase.java:2352)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$HashSetStringMarshaller.readPayload(MessageDatabase.java:2335)
> 	at org.apache.kahadb.index.BTreeNode$Marshaller.readPayload(BTreeNode.java:201)
> 	at org.apache.kahadb.index.BTreeNode$Marshaller.readPayload(BTreeNode.java:147)
> 	at org.apache.kahadb.page.Transaction.load(Transaction.java:406)
> 	at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
> 	at org.apache.kahadb.index.BTreeIndex.loadNode(BTreeIndex.java:262)
> 	at org.apache.kahadb.index.BTreeNode.getChild(BTreeNode.java:225)
> 	at org.apache.kahadb.index.BTreeNode.getLeafNode(BTreeNode.java:672)
> 	at org.apache.kahadb.index.BTreeNode.get(BTreeNode.java:558)
> 	at org.apache.kahadb.index.BTreeIndex.get(BTreeIndex.java:184)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.removeAckLocation(MessageDatabase.java:1642)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.updateIndex(MessageDatabase.java:1051)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$15.execute(MessageDatabase.java:890)
> 	at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:888)
> 	at org.apache.activemq.store.kahadb.MessageDatabase$13.visit(MessageDatabase.java:833)
> 	at org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand.visit(KahaRemoveMessageCommand.java:220)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.process(MessageDatabase.java:825)
> 	at org.apache.activemq.store.kahadb.MessageDatabase.store(MessageDatabase.java:751)
> 	at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBTopicMessageStore.doAcknowledge(KahaDBStore.java:650)
> 	at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBTopicMessageStore.acknowledge(KahaDBStore.java:637)
> 	at org.apache.activemq.store.ProxyTopicMessageStore.acknowledge(ProxyTopicMessageStore.java:78)
> 	at org.apache.activemq.broker.region.Topic.acknowledge(Topic.java:505)
> 	at org.apache.activemq.broker.region.DurableTopicSubscription.unmatched(DurableTopicSubscription.java:85)
> 	at org.apache.activemq.broker.region.policy.SimpleDispatchPolicy.dispatch(SimpleDispatchPolicy.java:44)
> 	at org.apache.activemq.broker.region.Topic.dispatch(Topic.java:628)
> 	at org.apache.activemq.broker.region.Topic$4.afterCommit(Topic.java:466)
> 	at org.apache.activemq.transaction.Transaction.fireAfterCommit(Transaction.java:109)
> 	at org.apache.activemq.transaction.Transaction.doPostCommit(Transaction.java:177)
> 	... 20 more
> {noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message