On Wed, 25 Oct 2023 11:27:18 GMT, Johannes Bechberger <jbechber...@openjdk.org> 
wrote:

> Fix race condition in debugger port selection, introduced with 
> [JDK-8317920](https://bugs.openjdk.org/browse/JDK-8317920).
> 
> Tested on my Mac M1, but it doesn't contain platform-dependent code.

test/lib/jdk/test/lib/JDWP.java line 60:

> 58:         if (parts.length != 2) {
> 59:             return null;
> 60:         }

This is a bit presumptuous in that it assumes that the first 2 token line of 
output is the line we are looking for. The reason `parseListenAddress()` tries 
to match a specific pattern is because sometimes tests are run in a way that 
causes the debuggee to produce some extra output (like logging output) and this 
output needs to be skipped.  At the very least you should be checking for a 
pattern that includes "dt_socket".

BTW, I tried using `printf` instead of `echo` so the debug agent could be made 
to generate a "Listening for transport..." line, in which case this new 
`parseLaunchEchoListenAddress()` would not be needed, but I could not get the 
argument processing right.  Something about exec() and printf just doesn't work 
right.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16358#discussion_r1372046981

Reply via email to