RFR: 8324668: JDWP process management needs more efficient file descriptor handling [v5]

Chris Plummer cjplummer at openjdk.org
Tue Jan 30 19:46:54 UTC 2024


On Tue, 30 Jan 2024 16:17:58 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> Can I please get a review of this change which proposes to address https://bugs.openjdk.org/browse/JDK-8324668?
>> 
>> This change proposes to fix the issue in jdwp where when launching a child process (for the `launch=<cmd>` option), it iterates over an extremely large number of file descriptors to close each one of those. Details about the issue and the proposed fixed are added in a subsequent comment in this PR https://github.com/openjdk/jdk/pull/17588#issuecomment-1912256075. tier1, tier2 and tier3 testing is currently in progress with this change.
>
> Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
> 
>   assert that we don't pass values higher than INT_MAX to close()

src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c line 139:

> 137:         LOG_MISC(("warning: failed to close file descriptors of"
> 138:                   " child process optimally, falling back to closing"
> 139:                   " %d file descriptors sequentially", (max_fd - i + 1)));

No one is ever going to see this. This logging is off by default, and when turned on goes to the logfile, not stdout or stderr. Perhaps ERROR_MESSAGE() would be better, which goes to stderr and also gives the option of aborting if the debug agent is launched with errorexit=y.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17588#discussion_r1471850043


More information about the serviceability-dev mailing list