Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-728

SessionState is leaking memory when dealing with resends and sequence numbers are skipped due to a SequenceReset

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.5.1, 1.5.3
    • Fix Version/s: 1.6.0
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      JDK 1.7

      Description

      When QuickFIX/J has to deal with ResendRequests (e.g., due to sequence number gaps or exceptions thrown by the client), the SessionState.messageQueue will grow and fill up with entries until the ResendRequest has been fulfilled, but will never clean up these queue entries later. Eventually this will consume all available heap (if no disconnect happen in between, which would clear the queue) and cause an OOM.

      To reproduce this issue, subscribe to market data and raise an exception with a certain probability (e.g., every 100th message). Depending on the incoming message volume the messageQueue will fill up pretty quickly and won't release its content after the ResendRequest has been satisfied.

        Attachments

          Activity

            People

            • Assignee:
              chrjohn Christoph John
              Reporter:
              thilo.ginkel Thilo-Alexander Ginkel
            • Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: