RFR 8058113 Execution of OnOutOfMemoryError command hangs on linux-sparc
gerald.thornbrugh at oracle.com
Mon Feb 2 23:21:52 UTC 2015
Please review my JDK7u change for JDK-8058113, "Execution of
OnOutOfMemoryError command hangs on linux-sparc"
The linux fork_and_exec() function in os_linux.cpp requires that a call
be made directly to "syscall(fork)" to
stay multi-thread safe. The linux/sparc version of "syscall(fork)"
returns the "is_child" flag in a register that
is used to determine if the current thread is the child thread. This
change creates the function sparc_fork()
that uses the correct assembly code to call the linux/sparc version of
"syscall(fork)" and returns the process
id and "is child" flag.
It was determined that this fix should not be putback into JDK8 or
JDK9. A bug will be filed to look into
a better way of doing a multi-thread safe "fork and exec" for all linux
platforms in JDK8 and JDK9.
I have completed JPRT and Aurora test runs on all platforms including 32
and 64 bit linux platforms without issues.
I have also completed JDK7u JPRT testing on linux/sparc 64 bit platforms
I also ran the OnOutOfMemoryError test on linux/sparc 64 bit platform
and the fix addressed the issue.
More information about the hotspot-runtime-dev