ConcurrentModificationException occures in the first few min
hegsti Jun 19, 2006 12:57 PMHi, we are using JBoss Messaging 1.0.1.CR2 on JBoss 4.0.4GA.
The DS for JBoss Messaging is configured to use MySQL 5 with InnoDB tables,and the ds configured with isolation TRANSACTION_READ_COMMITTED.
We have one producer creating all the ObjectMessages and one MDB(configured to use 10 threads in the invoker proxy binding.) producer and consumer is in the same JBoss instance.
Short time after startup we always get one stack trace as provided below.
After this error, messages continues to be consumed as normal.
If I stop the message producer after an error like this, the message count in the JMX-CONSOLE will show 1 message on queue when it should have been 0.
The db. tables used by JBoss messaging is empty.
The error always occures one time right after startup or after 2-3 minutes depending on load. After this, it is rare if it happens again in the next 100.000 messages.
Is there any configuration we could have done wrong to cause this error ?
2006-06-16 12:37:32,056 ERROR [SocketServerInvokerThread-10.11.32.32-3] [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] Exception occured
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
at java.util.AbstractList$Itr.next(AbstractList.java:420)
at org.jboss.jms.server.endpoint.ServerConsumerEndpoint$DeliveryCallback.afterCommit(ServerConsumerEndpoint.java:717)
at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:186)
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendTransaction(ServerConnectionEndpoint.java:390)
at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$sendTransaction$aop(ConnectionAdvised.java:99)
at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aop.Advisor.dynamicInvoke(Advisor.java:723)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:101)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:126)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:842)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:691)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:443)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:530)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:253)
2006-06-16 12:37:32,058 ERROR [SocketServerInvokerThread-10.11.32.32-3] [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] Failed to rollback tx
org.jboss.messaging.core.tx.TransactionException: Failed to remove delivery 649932
at org.jboss.jms.server.endpoint.ServerConsumerEndpoint$DeliveryCallback.afterRollback(ServerConsumerEndpoint.java:739)
at org.jboss.messaging.core.tx.Transaction.rollback(Transaction.java:256)
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendTransaction(ServerConnectionEndpoint.java:399)
at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$sendTransaction$aop(ConnectionAdvised.java:99)
at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aop.Advisor.dynamicInvoke(Advisor.java:723)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:101)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:126)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:842)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:691)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:443)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:530)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:253)
2006-06-16 12:37:32,118 ERROR [SocketServerInvokerThread-10.11.32.32-5] [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] Exception occured
org.jboss.messaging.core.tx.TransactionException: Cannot find local tx for xid:org.jboss.messaging.core.tx.XidImpl@e77c663a
at org.jboss.messaging.core.tx.TransactionRepository.getPreparedTx(TransactionRepository.java:129)
at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.sendTransaction(ServerConnectionEndpoint.java:504)
at org.jboss.jms.server.endpoint.advised.ConnectionAdvised.org$jboss$jms$server$endpoint$advised$ConnectionAdvised$sendTransaction$aop(ConnectionAdvised.java:99)
at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.jboss.jms.server.container.ServerLogInterceptor.invoke(ServerLogInterceptor.java:105)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aop.Advisor.dynamicInvoke(Advisor.java:723)
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:101)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:126)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:842)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:691)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:443)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:530)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:253)