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

provide a global lock around process creation in shell_utils_launcher

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.4.0-rc3
    • Component/s: Shell
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Platforms 2016-11-21
    • Linked BF Score:
      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

            Assignee:
            jason.carey Jason Carey
            Reporter:
            jason.carey Jason Carey
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: