Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-1871

Artemis STOMP heartbeater continues after client is gone

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 1.5.3
    • None
    • STOMP
    • None

    Description

      Under specific conditions the STOMP server continues to execute the heartbeat runnable task even after the client connection has closed.  In the extreme case this can result in eventual server failure since a new StompConnection and associated scheduled task are kept in memory indefinitely and a new one is created each time a client connects.  Therefore if a client repeatedly connects and triggers the error in a loop, eventually the server will run out of resources.

      The condition occurs when using STOMP 1.2, if a client sends a duplicate subscription ID.  The server correctly sends an ERROR frame to the client and closes the connection, but does not properly clean up the heartbeater which continues to run indefinitely according to the defined interval, even though there is no client to respond.

      See the attached integration test for details.  (This is a modified version of an existing test for a similar issue that was fixed for version 1.5.3).  The test code is src/test/java/org/apache/artemis/tests/integration/stomp/v11/StompV11Test.java.

      Attachments

        1. integration-tests.zip
          117 kB
          Jon Kranes

        Issue Links

          Activity

            People

              jbertram Justin Bertram
              jkranes99 Jon Kranes
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: