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.
|