There are a few changes we can make to help understand the LingeredApp test when it goes wrong. test/lib/jdk/test/lib/apps/LingeredApp.java startAppExactJvmOpts() should not try and call finishApp unless the process isAlive, that just creates a misleading exception. waitAppReady() is really waitAppReadyOrCrashed(), and should not timeout immediately after the 1 second sleep, or we lose a second of our timeout value (not critical with a long timeout, but seems more honest). When startAppExactJvmOpts handles an Exception, was theApp.finishApp() ever useful? Show how long we waited when startup/crashing times out. Show how long a good startup takes, so we have a basic for comparison when it fails. Show if there are hs_err/core/mdmp files in the working directory after startup/crash attempt. Also, in open/test/lib/jdk/test/lib/util/CoreUtils.java: "Move core file" often seems unnecessary, core/mdmp usually being created in the current directory. But getCoreFileLocation() performs Files.move() which takes enough time to not be a no-op.