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

AsyncWorkScheduler's join method does not guarantee that all scheduled future chains have ran

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.10
    • Affects Version/s: 4.1.9
    • Component/s: Sharding
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Sharding 2019-04-08
    • 29

      The TransactionCoordinator's destructor relies on joining the AsyncWorkScheduler in order to ensure that there are no more threads, which could be accessing it. However, the AsyncWorkScheduler unregisters the subordinate tasks' and network responses' handles before the full chain has finished executing, which causes a race condition where the destructor of TransactionCoordinator can finish running while the future chains are still running. This results in an access violation crash.

            Assignee:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Reporter:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: