OOM under minimal load
----------------------
Key: AMQ-1829
URL: https://issues.apache.org/activemq/browse/AMQ-1829
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.1.0
Environment: Grails w/ JMS Plugin, JDK 1.6, OSX Leopard
Reporter: Craig Blake
Priority: Critical
Under load of 70 messages per minute, ActiveMQ fails with an OutOfMemory
exception after 1.5 hours. VM information available via JMX indicates that
over 2,500 live threads exist at time of failure, with 116MB of memory
committed out of 490MB available.
The netstat command shows several thousand connections in CLOSE_WAIT status at
the time of failure.
WARNING: RMI TCP Accept-0: accept loop for
ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=65276] throws
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:615)
at
java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:727)
at
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657)
at
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:384)
at
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
at java.lang.Thread.run(Thread.java:637)
Exception in thread "InactivityMonitor WriteCheck" java.lang.OutOfMemoryError:
unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:615)
at
java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:727)
at
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657)
at
org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:128)
at
org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:103)
at
org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
The application sees the following error:
javax.jms.JMSException: Wire format negotiation timeout: peer did not send his
wire format.
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1183)
at
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1262)
at
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:292)
at
org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
at
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:450)
... 56 more
Caused by: java.io.IOException: Wire format negotiation timeout: peer did not
send his wire format.
at
org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:85)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
at
org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:70)
at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:75)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1172)
... 60 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.