Hi Brian,

Updated webrev:
http://cr.openjdk.java.net/~rriggs/webrev-handles-8239893-1/index.html

The threshold is a pretty loose target.
Given the original error that leaked a handle for every process started, it just needs to detect a growing number of handles in use.  But for the sake of accuracy and avoiding someone copying buggy code, its fixed.

Thanks, Roger


On 3/5/20 4:07 PM, Brian Burkhalter wrote:
Hi Roger,

On Mar 5, 2020, at 12:51 PM, Roger Riggs <roger.ri...@oracle.com <mailto:roger.ri...@oracle.com>> wrote:

Please review a change to the Windows ProcessImpl to ensure that the handles created for the input and output streams of a process are closed when no longer referenced.

Unlike on Linux, there is no thread monitoring the process that can close the streams. The FileDescriptors are registered with the Cleaner to be closed when they are no longer referenced.

A test is added that monitors the count of handles as 50 Processes are launched and exit.
The test and change only affect the Windows implementation.

Webrev:
http://cr.openjdk.java.net/~rriggs/webrev-handles-8239893/

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

In CheckHandles.java at line 72 there is this calculation:
final long ERROR_THRESHOLD = minHandles + (minHandles / ERROR_PERCENT); // 10% increase over min to passing max
Do you think it would be better as

final long ERROR_THRESHOLD = minHandles + ((minHandles + ERROR_PERCENT - 1) / ERROR_PERCENT); // 10% increase over min to passing max

, i.e., rounded instead of truncated?

Brian

Reply via email to