Request for Review: 5049299: (process) Use posix_spawn, not fork, on S10 to avoid swap exhaustion
rob.mckenna at oracle.com
Thu Nov 22 21:27:13 UTC 2012
Looking for a review for the webrev below, which also resolves:
7175692: (process) Process.exec should use posix_spawn [macosx]
For additional context and a brief description it would be well worth
looking at the following thread started by Michael McMahon, who did the
brunt of the work for this fix:
Basically the fix aims to swap fork for posix_spawn as the default
process launch mechanism on Solaris and Mac OSX in order to avoid swap
exhaustion issues encountered with fork()/exec(). It also offers a flag
(java.lang.useFork) to allow a user to revert to the old behaviour.
I'm having trouble seeing the wood for the trees at this point so I'm
anticipating plenty of feedback. In particular I'd appreciate some
- The binary launcher name & property name may need some work. A more
general property ("java.lang.launchMechanism") to allow a user to
specify a particular call was mooted too. It may be more future proof
and I'm completely open to that. (e.g.
launchMechanism=spawn|fork|vfork|clone - we would obviously ignore
inapplicable values on a per-platform basis)
- I'd like a more robust way of checking that someone isn't trying to
use jprochelper outside of the context for which it is meant.
- The decision around which call to use getting moved to the java level
and away from the native preprocessor.
The webrev is at:
Thanks a lot,
More information about the core-libs-dev