Uploaded image for project: 'ActiveMQ .Net'
  1. ActiveMQ .Net
  2. AMQNET-434

FailoverTransport Memory Leak with TransactionState

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.5.6
    • 1.6.0
    • None
    • None

    Description

      I'm hunting down a possible memory leak. We have the following problem in production:

      when the consumer/subscriber endpoint runs for a long time with failover transport enabled the memory grows indefinitely.

      I used YouTrack and AntsProfiler to hunt down the issues. The retention path I see in production is the following:

      The FailoverTransport nested class FailoverTask has two ConnectionStateTrackers this keeps a dictionary which links the ConnectionId to the ConnectionState. The ConnectionState itself has a dictionary which links the transactionId to the TransactionState. The TranscationState tracks commands. BUT these commands are never freed up from the transaction state and stay there forever which will blow up the memory some time.

      I'm currently investigation how to fix this but must first properly understand the code. I opened up this issue in the hope that it will ring a bell for you guys.

      Daniel

      Attachments

        1. ConnectionStateTrackerMemoryLeak.cs
          0.6 kB
          Daniel Marbach

        Activity

          People

            tabish Timothy A. Bish
            danielmarbach Daniel Marbach
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: