On Tue, 23 Dec 2025 20:07:36 GMT, Kieran Farrell <[email protected]> wrote:

>> Currently, it is only possible to read the number of open file descriptors 
>> of a Java process via the `UnixOperatingSystemMXBean` which is only 
>> accessible via JMX enabled tools. To improve servicability, it would be 
>> benifical to be able to view this information from jcmd VM.info output or 
>> hs_err_pid crash logs. This could help diagnose resource exhaustion and 
>> troubleshoot "too many open files" errors in Java processes on Unix 
>> platforms.
>> 
>> This PR adds reporting the current open file descriptor count to both jcmd 
>> VM.info output or hs_err_pid crash logs by refactoring the native JNI logic 
>> from 
>> `Java_com_sun_management_internal_OperatingSystemImpl_getOpenFileDescriptorCount0`
>>  of the `UnixOperatingSystemMXBean` into hotspot. Apple's API for retrieving 
>> open file descriptor count provides an array of the actual FDs to determine 
>> the count. To avoid using `malloc` to store this array in a potential signal 
>> handling context where stack space may be limited, the apple implementation 
>> instead allocates a fixed 32KB struct on the stack to store the open FDs and 
>> only reports the result if the struct is less than the max (1024 FDs). This 
>> should cover the majoirty of use cases.
>
> Kieran Farrell has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   comment

50ms timed loop added to limit the proc file read for the AIX and linux 
implementations.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/27971#issuecomment-3687847914

Reply via email to