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

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.1.10
    • 4.1.9
    • 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

        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: