Issue Details (XML | Word | Printable)

Key: AMQ-1667
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Rob Davies
Reporter: John F. Merryman
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
ActiveMQ

AMQ message store throws IllegalStateException/IndexOutOfBoundsExceptions (5.1)

Created: 16/Apr/08 11:22 AM   Updated: 21/Apr/08 11:00 PM
Return to search
Component/s: None
Affects Version/s: 5.1.0
Fix Version/s: 5.1.0

Time Tracking:
Not Specified

File Attachments:
  Size
Java Archive File AMQ-1667-Tests.jar 2008-04-16 11:43 AM John F. Merryman 17 kB
Environment:
Windows XP
java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)


 Description  « Hide
In 5.1RC3, when doing a durable subscription test, only about 100~ messages get sent, then IndexOutOfBoundsExceptions start to occur when messages are sent. Only the first 100~ messages are received by the first durable subscriber.
I can reproduce this error reliably. I will work on packaging a test program to demonstrate this error.

Stacktrace:

2008-04-16 14:09:32,357 [topic://testSub] WARN AMQMessageStore - Message could not be added to long term store: Trying to access an inactive page: 999424
java.lang.IllegalStateException: Trying to access an inactive page: 999424
at org.apache.activemq.kaha.impl.index.hash.HashIndex.lookupPage(HashIndex.java:283)
at org.apache.activemq.kaha.impl.index.hash.HashPageInfo.begin(HashPageInfo.java:95)
at org.apache.activemq.kaha.impl.index.hash.HashBin.getRetrievePage(HashBin.java:260)
at org.apache.activemq.kaha.impl.index.hash.HashBin.getHashEntry(HashBin.java:236)
at org.apache.activemq.kaha.impl.index.hash.HashBin.remove(HashBin.java:164)
at org.apache.activemq.kaha.impl.index.hash.HashIndex.remove(HashIndex.java:246)
at org.apache.activemq.kaha.impl.container.MapContainerImpl.remove(MapContainerImpl.java:324)
at org.apache.activemq.kaha.impl.container.MapContainerImpl.place(MapContainerImpl.java:401)
at org.apache.activemq.store.kahadaptor.TopicSubContainer.add(TopicSubContainer.java:62)
at org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore.addMessageReference(KahaTopicReferenceStore.java:95)
at org.apache.activemq.store.amq.AMQMessageStore$4.execute(AMQMessageStore.java:385)
at org.apache.activemq.util.TransactionTemplate.run(TransactionTemplate.java:44)
at org.apache.activemq.store.amq.AMQMessageStore.doAsyncWrite(AMQMessageStore.java:374)
at org.apache.activemq.store.amq.AMQMessageStore.asyncWrite(AMQMessageStore.java:341)
at org.apache.activemq.store.amq.AMQMessageStore$1.iterate(AMQMessageStore.java:95)
at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)

Later stacktraces look like this:
2008-04-16 14:09:33,140 [topic://testSub] WARN AMQMessageStore - Message could not be added to long term store: Index: 1, Size: 1
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.apache.activemq.kaha.impl.index.hash.HashPage.getHashEntry(HashPage.java:194)
at org.apache.activemq.kaha.impl.index.hash.HashPageInfo.getHashEntry(HashPageInfo.java:77)
at org.apache.activemq.kaha.impl.index.hash.HashBin.getHashEntry(HashBin.java:239)
at org.apache.activemq.kaha.impl.index.hash.HashBin.remove(HashBin.java:164)
at org.apache.activemq.kaha.impl.index.hash.HashIndex.remove(HashIndex.java:246)
at org.apache.activemq.kaha.impl.container.MapContainerImpl.remove(MapContainerImpl.java:324)
at org.apache.activemq.kaha.impl.container.MapContainerImpl.place(MapContainerImpl.java:401)
at org.apache.activemq.store.kahadaptor.TopicSubContainer.add(TopicSubContainer.java:62)
at org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore.addMessageReference(KahaTopicReferenceStore.java:95)
at org.apache.activemq.store.amq.AMQMessageStore$4.execute(AMQMessageStore.java:385)
at org.apache.activemq.util.TransactionTemplate.run(TransactionTemplate.java:44)
at org.apache.activemq.store.amq.AMQMessageStore.doAsyncWrite(AMQMessageStore.java:374)
at org.apache.activemq.store.amq.AMQMessageStore.asyncWrite(AMQMessageStore.java:341)
at org.apache.activemq.store.amq.AMQMessageStore$1.iterate(AMQMessageStore.java:95)
at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)



 All   Comments   Work Log   Change History   Subversion Commits   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
John F. Merryman added a comment - 16/Apr/08 11:22 AM
Similar to AMQ-1527, but occurs in 5.1 RC3

John F. Merryman made changes - 16/Apr/08 11:43 AM
Field Original Value New Value
Attachment AMQ-1667-Tests.jar [ 16353 ]
Rob Davies made changes - 20/Apr/08 11:20 PM
Assignee Rob Davies [ rajdavies ]
Rob Davies added a comment - 21/Apr/08 11:00 PM
Fixed by SVN revision 650386

Rob Davies made changes - 21/Apr/08 11:00 PM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Repository Revision Date User Message
AMQ #650386 Mon Apr 21 23:03:17 PDT 2008 rajdavies Fix for https://issues.apache.org/activemq/browse/AMQ-1667
Files Changed
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPage.java
MODIFY /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPageInfo.java

Create crucible review for this changeset in