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

provide a global lock around process creation in shell_utils_launcher

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 3.4.0-rc3
    • Shell
    • Fully Compatible
    • ALL
    • Platforms 2016-11-21
    • 0

    Description

      The shell process management functions fork()/exec() in a multi-threaded program without sufficient guards to avoid leaking fds into children. This causes deadlocks around the program registry (as we rely on file descriptor closure to break us out of dedicated child threads which read child output).

      The fix is to use a global lock to guard us from before the call to pipe() until after we close write side of the pipe in the parent.

      Attachments

        Activity

          People

            jason.carey@mongodb.com Jason Carey
            jason.carey@mongodb.com Jason Carey
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: