Jon Kranes created ARTEMIS-1871:

             Summary: Artemis STOMP heartbeater continues after client is gone
                 Key: ARTEMIS-1871
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: STOMP
    Affects Versions: 1.5.3
            Reporter: Jon Kranes
            Assignee: Justin Bertram

Under specific conditions the STOMP server continues to execute heartbeat logic 
even after the client connection has closed.  In the extreme case this can 
result in eventual server failure since a new StompConnection and associated 
objects 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).

This message was sent by Atlassian JIRA

Reply via email to