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

Chris Plummer cjplummer at openjdk.org
Mon Jan 29 19:28:32 UTC 2024


On Mon, 29 Jan 2024 10:00:37 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 three additional commits since the last revision:
> 
>  - add a log message to help debuggability
>  - improve code comments
>  - David's review - use standard isdigit instead of custom isAsciiDigit

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

> 127:         /* Find max allowed file descriptors for a process
> 128:          * and assume all were opened for the parent process and
> 129:          * copied over to this child process. We close them all. */

I'm somewhat leaning towards this just being a fatal error. Why would it ever fail? Do we think the version in childproc.c that also does this is doing so for a good reason, or perhaps just like jdwp it used to use the slow version and then kept it around as a backup when the faster version was introduced.

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

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


More information about the serviceability-dev mailing list