RFR 10: 8184808 (process) isAlive should use pid for validity, not /proc/pid

Roger Riggs Roger.Riggs at Oracle.com
Tue Jul 18 18:46:38 UTC 2017


Please review a fix for an intermittent failure in the ProcessHandle 
OnExitTest
that fails frequently on Solaris.

ProcessHandle.isAlive is using /proc/pid/psinfo to determine if a 
process is alive and it's start time.
However, it appears that the between the process exiting and the reaping 
of its status, the
psinfo file indicates the process is alive but kill(pid, 0) reports that 
is is not alive.
Depending on a race, the ProcessHandler.onExit may determine the process 
has exited
but later isAlive may report it is alive.

To have a consistent view of the process being alive, 
ProcessHandle.isAlive in its native implementation
should use kill(pid, 0) to determine if the process is definitively 
determine if the process alive.

The original issue[1] will be kept open until it is known that it is 
resolved.

Webrev:
   http://cr.openjdk.java.net/~rriggs/webrev-alive-solaris-8184808/

Issue:
    https://bugs.openjdk.java.net/browse/JDK-8184808

Thanks, Roger

[1] https://bugs.openjdk.java.net/browse/JDK-8177932




More information about the core-libs-dev mailing list