Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-882

A-MQ memory leak when an AMQP JMS client reuses a connection and recreates session

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • JBoss A-MQ 6.2
    • JBoss A-MQ 6.1, JBoss A-MQ 6.2, 6.1.1
    • amqp
    • None
    • Hide

      1. Edit etc/users.properties in A-MQ to enable "admin/admin"
      2. Edit etc/activemq.xml in A-MQ and add the following inside <transportConnectors> to enable AMQP connector

      <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;transport.transformer=jms"/>  
      

      or

      <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;transport.transformer=jms&amp;transport.closeAsync=false"/> 
      

      3. Start A-MQ with bin/amq start
      4. Extract the attached amqp_memory_leak_reproducer.tar.gz
      5. Move to the extracted "amqp-queue-monitor" directory
      6. Execute ./exec2.sh (or ant run-main2) to run the reproducer (com.redhat.example.AMQPQueueMonitor2)
      7. You will see memory leak issue on A-MQ server

      Show
      1. Edit etc/users.properties in A-MQ to enable "admin/admin" 2. Edit etc/activemq.xml in A-MQ and add the following inside <transportConnectors> to enable AMQP connector <transportConnector name= "amqp" uri= "amqp://0.0.0.0:5672?maximumConnections=1000&amp;transport.transformer=jms" /> or <transportConnector name= "amqp" uri= "amqp://0.0.0.0:5672?maximumConnections=1000&amp;transport.transformer=jms&amp;transport.closeAsync=false" /> 3. Start A-MQ with bin/amq start 4. Extract the attached amqp_memory_leak_reproducer.tar.gz 5. Move to the extracted "amqp-queue-monitor" directory 6. Execute ./exec2.sh (or ant run-main2 ) to run the reproducer ( com.redhat.example.AMQPQueueMonitor2 ) 7. You will see memory leak issue on A-MQ server

      A-MQ memory leak occurs when an AMQP JMS client reuses a connection and recreates session.

      A heap dump shows:

      • a number of instances "org.apache.activemq.transport.amqp.AmqpTransportFilter" occupy 45% of heap. (It looks number is equal to connections.)
      • a lot of instances of "org.apache.qpid.proton.engine.impl.TransportSession" occupy 30% of heap.

        1. amqp_memory_leak_reproducer.tar.gz
          1.30 MB
          Masafumi Miura
        2. entmq-882-0.30-overview.png
          74 kB
          Elena Medvedeva

              rhn-support-jprajzne Jiri Prajzner
              rhn-support-mmiura Masafumi Miura
              Pavel Macik Pavel Macik
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

                Created:
                Updated:
                Resolved: