Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6944584

Improvements to subprocess handling on Unix

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3
    • 7
    • 7
    • core-libs
    • b100
    • generic
    • generic
    • Verified

    Description

      Looking at UNIXProcess.java.linux, there are a number of possible improvements:

      The "process reaper" thread should run in a thread pool to save on
      thread creation in case of repeated process creation. Its stack size
      should be small.

      If the process reaper thread throws a non-IOException (e.g. OOME)
      the thread creating the subprocess will hang,
      waiting for a signal from the reaper thread.

      The JDK knows when the subprocess terminates.
      At that time, we cannot yet close the streams,
      because there may still be unread buffered data, but...
      the file descriptors underlying the subprocess streams
      can be drained, then closed, and the drained bytes can
      be added to the internal buffer. This will solve most cases
      of (pandemic) poor file stream hygiene leading to
      file descriptor exhaustion or simply poor performance.

      Attachments

        Issue Links

          Activity

            People

              martin Martin Buchholz
              chegar Chris Hegarty
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: