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

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • 4.1.9
    • 4.1.10
    • Sharding
    • None
    • Fully Compatible
    • ALL
    • Sharding 2019-04-08
    • 29

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: