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

Reply via email to