On Mon, 16 Mar 2026 14:46:32 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 two additional > commits since the last revision: > > - update apple and linux impl > - unlimited buffer for mac in non-signal handling context (vm.info) Looks good to me. Please wait with pushing until all tests are green. ------------- Marked as reviewed by stuefe (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/27971#pullrequestreview-3954528794
