ArrayIndexOutOfBoundsException during ServerSessionPoolImpl.getServerSession()
------------------------------------------------------------------------------
Key: AMQ-1215
URL: https://issues.apache.org/activemq/browse/AMQ-1215
Project: ActiveMQ
Issue Type: Bug
Components: Connector
Affects Versions: 4.1.0
Environment: uname -a:
Linux 2.6.9-42.0.3.plus.c4smp #1 SMP Fri Oct 6 12:16:15 CDT 2006 i686 i686
i386 GNU/Linux
java -version:
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
JVM options:
-Dcom.sun.management.jmxremote -server -Xmx1024m
ActiveMQ revision: 516005
JCA connector is Jencks 2.0
Using spring 2.0
Reporter: Francesco Vivoli
After some hours of execution my service stopped consuming messages; the log
file shows this:
2007-03-23 18:26:18,573 [ool-1-thread-21] ERROR ServerSessionPoolImpl
- Error redispatching unconsumed messages from stale session
java.lang.IndexOutOfBoundsException: Index: 73, Size: 73
at
edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArrayList.remove(CopyOnWriteArrayList.java:346)
at
org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession(ServerSessionPoolImpl.java:104)
at
org.apache.activemq.ra.ServerSessionPoolImpl.dispatchToSession(ServerSessionPoolImpl.java:138)
at
org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool(ServerSessionPoolImpl.java:180)
at
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:179)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
at
org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:619)
2007-03-23 18:26:18,575 [ol-1-thread-127] ERROR ServerSessionPoolImpl
- Error redispatching unconsumed messages from stale session
java.lang.IndexOutOfBoundsException: Index: 67, Size: 67
at
edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArrayList.remove(CopyOnWriteArrayList.java:346)
at
org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession(ServerSessionPoolImpl.java:104)
at
org.apache.activemq.ra.ServerSessionPoolImpl.dispatchToSession(ServerSessionPoolImpl.java:138)
at
org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool(ServerSessionPoolImpl.java:180)
at
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:179)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
at
org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:619)
2007-03-23 18:26:18,583 [ol-1-thread-116] ERROR ServerSessionPoolImpl
- Error redispatching unconsumed messages from stale session
java.lang.IndexOutOfBoundsException: Index: 65, Size: 65
at
edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArrayList.remove(CopyOnWriteArrayList.java:346)
at
org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession(ServerSessionPoolImpl.java:104)
at
org.apache.activemq.ra.ServerSessionPoolImpl.dispatchToSession(ServerSessionPoolImpl.java:138)
at
org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool(ServerSessionPoolImpl.java:180)
at
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:179)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
at
org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:619)
the org.jencks.JCAConnector is configured as follows:
<bean id="inboundConnectorStage1" class="org.jencks.JCAConnector"
lazy-init="true">
<property name="jcaContainer" ref="jencksJCAContainer1"/>
<property name="activationSpec">
<bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
<property name="destination" value="stage1Queue"/>
<property name="destinationType" value="javax.jms.Queue"/>
<property name="acknowledgeMode" value="Dups-ok-acknowledge"/>
<property name="maxSessions" value="${stage1.maxSessions}"/>
<property name="maxMessagesPerSessions"
value="${stage1.maxSessions}"/>
</bean>
</property>
<property name="ref" value="stage1"/>
</bean>
where initially stage1.maxSessions=250 and the threadpool size was set to 300.
I have been able to avoid this problem reducing the concurrency, but of course
this
is not the solution.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.