RFR: JDK-8212828 Allow POSIX_SPAWN to be used for ProcessImpl on Linux

Thomas Stüfe thomas.stuefe at gmail.com
Wed Oct 24 14:35:22 UTC 2018

Hi all,

version 2 of Davids patch, with test changes:


Executed the test on my local Ubuntu box, works fine. Submit job runs.

About the test: I added a new line:

  * @run main/othervm/timeout=300 Basic
  * @run main/othervm/timeout=300 -Djdk.lang.Process.launchMechanism=fork Basic
+ * @run main/othervm/timeout=300
-Djdk.lang.Process.launchMechanism=posix_spawn Basic

The way I understand those tests work is that the first line causes
the test to be run with the default launch mechanism, the second line
with jdk.lang.Process.launchMechanism=fork explicitly. The third line,
added by me, will now explicitly test with posix_spawn. I did not
limit the platforms, since posix_spawn should now be available on all
platforms, so it should work on all platforms. But then, on all other
platforms it has already been the default.

This is still a bit iffy: On Windows, jdk.lang.Process.launchMechanism
gets ignored, so we just executed the same test twice (now three
times)? And now we execute the posix_spawn variant twice on all
platforms where this is the default, so line 1 and 3 are the same? You
see I am not a jtreg expert :) Can I specify a @run directive for only
one platform? In that case I would limit the explicit posix_spawn test
to Linux.

Note however that if we really abondon vfork in the future and make
posix_spawn the default, this test becomes simpler too.

Best, Thomas

On Wed, Oct 24, 2018 at 3:36 PM David Lloyd <david.lloyd at redhat.com> wrote:
> On Wed, Oct 24, 2018 at 1:05 AM Thomas Stüfe <thomas.stuefe at gmail.com> wrote:
> > Review:
> >
> > - copyright dates need updating on the C-sources
> >
> > - I opt for "#if defined(__solaris__) || defined(_ALLBSD_SOURCE) ||
> > defined(_AIX) || defined(__linux__)" to be removed completely from
> > unix-specific source files. The ifdef now covers all OpenJDK Unix
> > platforms.
> Here's a version with these changes.
> --
> - DML

More information about the core-libs-dev mailing list