On Fri, 31 May 2024 18:22:47 GMT, Leonid Mesnik <[email protected]> wrote:
> The fix removes finalization cleanup from vmTestbase.
> The last to classes that use it are: DebugeeBinder and SocketIOPipe.
> The DebugeeBinder is used in jdi and jdwp tests and is always linked with
> debuggee process. So the DebugeeProcess.waitFor() is the good place to close
> binder and free all it's resources.
> The SocketIOPipe is used directly in AOD tests where it should be closed
> after test execution.
>
> The OPipe (child of SocketIOPipe) also used in jdi and jdwp tests where it is
> connected directly in tests. However is also connected with debuggee and
> could be closed in DebugeeProcess.waitFor().
>
> The VMOutOfMemoryException001 test is fixed to release some memory after
> throwing OOME so Sytem.exit() could complete successfully. Previously some
> memory freed during VM shutdown hook.
>
> I verified that cleanup printed that corresponding 'close' method has been
> already called before VM shutdown phase for debugger process.
> Additionally, run all vmTestbase tests to verify there are no failures,
test/hotspot/jtreg/vmTestbase/nsk/share/aod/DummyTargetApplication.java line 68:
> 66: if ((signal == null) ||
> !signal.equals(AODTestRunner.SIGNAL_FINISH))
> 67: throw new TestBug("Unexpected signal: '" + signal + "'");
> 68: pipe.close();
Exceptions can be thrown before you get here.
test/hotspot/jtreg/vmTestbase/nsk/share/jpda/DebugeeProcess.java line 215:
> 213: if (binder != null) {
> 214: binder.close();
> 215: }
Won't this be skipped if there is an exception during `waitForDebugee` or
`waitForRedirectors`?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19505#discussion_r1622898244
PR Review Comment: https://git.openjdk.org/jdk/pull/19505#discussion_r1622896237