Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28239

Fix double ticket holder release in transport layer legacy during primary step down

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical - P2
    • Resolution: Fixed
    • Affects Version/s: 3.4.0, 3.5.1
    • Fix Version/s: 3.4.3, 3.5.5
    • Component/s: Networking
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v3.4
    • Sprint:
      Platforms 2017-03-27
    • Case:

      Description

      During a primary step down, we call _closeConnection on all matching sessions. This kicks those sessions out of sourceMessage, which causes them to explicitly call end(), which calls _closeConnection. _closeConnection calls globalTicketHolder.release().

      This causes us to double release on primary step down, which causes us to increase the effective number of tickets in the system.

      This behavior is most noticeable when looking at the 'now open' number of connections in the main init and listen thread, where the 'outof' param stays steady at the desired number of connections, but the 'available' amount increases. This causes us to report negative numbers of open connections.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: