On Thu, 27 May 2021 23:00:56 GMT, Alex Menkov <[email protected]> wrote:
> nsk test framework for testing jdi/jdwp assumes that the test launch debuggee > first and then creates IOPipe to communicate with debuggee (debugger listens, > debugee connects to the IOPipe socket). > This makes possible failure when debuggee tries to connect before debugger > starts listening. > The fix changes logic of the tests to start listening on IOPipe socket before > launch debuggee. > Other tests which use IOPipe/SocketIOPipe and have the same issue (there are > a lot of them) will be fixes as separate issues. > > Couple details about the fix: > - debugee.getPipeServerSocket() just calls binder.getPipeServerSocket(), > returned ServerSocket can be changed only by > DebugeeBinder.prepareForPipeConnection which is called by some tests; > - connectingProcess logic is broken. The only place it's used is > BasicSocketConnection.checkConnectingProcess, which is called from > SocketConnection.continueAttach. But continueAttach is called from debuggee > code (listening == false) while connectingProcess is set only from debugger > code (listening == true). So it didn't work and I dropped it. > > Testing: all tests which use IOPipe/SocketIOPipe classes: > - test/hotspot/jtreg/serviceability/dcmd/framework > - test/hotspot/jtreg/vmTestbase/nsk/jdi > - test/hotspot/jtreg/vmTestbase/nsk/jdwp This pull request has now been integrated. Changeset: b568e879 Author: Alex Menkov <[email protected]> URL: https://git.openjdk.java.net/jdk/commit/b568e87947a5d7f1d8c20e3e8a8b2b7f77265c8b Stats: 143 lines in 5 files changed: 74 ins; 51 del; 18 mod 8237388: serviceability/dcmd/framework/VMVersionTest.java fails with connection refused error. Reviewed-by: cjplummer, sspitsyn ------------- PR: https://git.openjdk.java.net/jdk/pull/4235
