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

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 4.1.9
    • Fix Version/s: 4.1.10
    • Component/s: Sharding
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Sharding 2019-04-08
    • Linked BF Score:
      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

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

                Dates

                Created:
                Updated:
                Resolved: