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.

Reply via email to