RFR 8239893: Windows handle Leak when starting processes using ProcessBuilder
Roger.Riggs at oracle.com
Fri Mar 6 16:16:17 UTC 2020
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.
On 3/5/20 4:07 PM, Brian Burkhalter wrote:
> Hi Roger,
>> On Mar 5, 2020, at 12:51 PM, Roger Riggs <Roger.Riggs at oracle.com
>> <mailto:Roger.Riggs at oracle.com>> wrote:
>> Please review a change to the Windows ProcessImpl to ensure that the
>> 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.
> 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?
More information about the core-libs-dev