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

Restart of SessionConnector might lead to creation of additional message processor threads

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.3
    • Fix Version/s: 1.6.0
    • Component/s: Engine
    • Labels:
      None

      Description

      When using a SingleThreadedEventHandlingStrategy it is expected that there is only one "QFJ Message Processor" thread. However, when starting a connector multiple times in a row or when quickly restarting it, there might be several message processor threads. This situation might lead to unforeseen effects, e.g. race conditions or sequence number issues.

      The reason for this seems to be that the message processor thread is polling the event queue and does not get stopped correctly when waiting for the next message in the queue.
      Workaround for the time being: make sure that you sleep at least 1000ms (polling interval on event queue) before (re)starting a connector after stopping it. This will give the message processor thread enough time to shutdown orderly.

      todo

      • prevent concurrent startups of Initiator/Acceptor
      • prevent creation of multiple message processor threads
      • add some info logging that the message processor thread has been started/stopped

        Attachments

          Activity

            People

            • Assignee:
              chrjohn Christoph John
              Reporter:
              chrjohn Christoph John
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: