Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-7879

[LTS] Memory Leak With Spring / AMQP Client Long-Running Connections

    XMLWordPrintable

Details

    • False
    • None
    • False
    • ARTEMIS-4161, ARTEMIS-4175, ARTEMIS-4198, ARTEMIS-4171
    • Hide

      1. Configure an run an AMQ 7.10.0 broker using default settings
      2. Configure and run the attached reproducer (broker URL is coded in Application.java)
      – from the root of the project:
      mvn clean install
      cd target
      java -cp reproducer-7.0.0-SNAPSHOT.jar:lib/* com.amqtest.main.Application

      3. Allow the reproducer to run for several hours, periodically taking a heap dump of the broker
      4. Compare the number of closed ServerConsumerImpl and ProtonServerSenderImpl objects in the heaps over time:

      select * from org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext pssc where pssc.closed = true
      
      select * from org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl sci where sci.isClosed = true
      
      Show
      1. Configure an run an AMQ 7.10.0 broker using default settings 2. Configure and run the attached reproducer (broker URL is coded in Application.java) – from the root of the project: mvn clean install cd target java -cp reproducer-7.0.0-SNAPSHOT.jar:lib/* com.amqtest.main.Application 3. Allow the reproducer to run for several hours, periodically taking a heap dump of the broker 4. Compare the number of closed ServerConsumerImpl and ProtonServerSenderImpl objects in the heaps over time: select * from org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext pssc where pssc.closed = true select * from org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl sci where sci.isClosed = true

    Description

      When a long-running transacted spring boot client is attached to the broker, we observe a gradual increase in closed org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext and org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl objects that are not cleaned up. Eventually, we observe diminishing performance due to the huge number of objects in the heap (we see upwards of 850000 of each in the heap after load testing).

      Attachments

        Issue Links

          Activity

            People

              csuconic@redhat.com Clebert Suconic
              rhn-support-dhawkins Duane Hawkins
              Samuel Gajdos Samuel Gajdos
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: