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

provide a global lock around process creation in shell_utils_launcher

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.4.0-rc3
    • Affects Version/s: None
    • Component/s: Shell
    • Labels:
    • Fully Compatible
    • ALL
    • Platforms 2016-11-21
    • 0

      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.

            Assignee:
            mira.carey@mongodb.com Mira Carey
            Reporter:
            mira.carey@mongodb.com Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: