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