On Thu, 27 May 2021 22:05:55 GMT, Leonid Mesnik <lmes...@openjdk.org> wrote:

> EFH is improved to process cores and get mixed stack traces with jhsdb and 
> native stack traces with gdb/lldb. It might be useful because hs_err doesn't 
> contain info about all threads, sometimes it is even not generated.

@lmesnik , how has this been tested?

test/failure_handler/Makefile line 41:

> 39: CONF_DIR = src/share/conf
> 40: 
> 41: JAVA_RELEASE = 7

could you please update `DEPENDENCES` section in `test/failure_handler/README`?

test/failure_handler/src/share/classes/jdk/test/failurehandler/ToolKit.java 
line 69:

> 67:                 }
> 68:             } catch (IOException ioe) {
> 69:                 // just silently skip gzipped core processing

we don't silently ignore exceptions in `failure_handler`, we tend to print them 
so we at least have some echoes of what happened.

test/failure_handler/src/share/classes/jdk/test/failurehandler/ToolKit.java 
line 71:

> 69:                 // just silently skip gzipped core processing
> 70:             }
> 71:             unpackedCore.toFile().delete();

Suggestion:

            Paths.delete(unpackedCore);
``` ?

test/failure_handler/src/share/classes/jdk/test/failurehandler/Utils.java line 
73:

> 71:         InputStream stream = 
> Utils.class.getResourceAsStream(resourceName);
> 72: 
> 73:         // EFH_CONF_DIR might re-defined to load custom configs for 
> development purposes

this also seems to be unrelated to the subject and does require documentation 
in `test/failure_handler/README`.

test/failure_handler/src/share/classes/jdk/test/failurehandler/action/PatternAction.java
 line 63:

> 61:         }
> 62:         for (int i = 0, n = args.length; i < n; ++i) {
> 63:             args[i] = args[i].replace("%java", 
> helper.findApp("java").getAbsolutePath());

are we sure that `java` from `PATH` (which is what `findApp` returns) is the 
right `java`?

test/failure_handler/src/share/conf/common.properties line 38:

> 36:         jcmd.vm.system_properties \
> 37:   jcmd.gc.heap_info jcmd.gc.class_histogram jcmd.gc.finalizer_info \
> 38:   jcmd.vm.info \

this seems to be unrelated to the RFE you are working on.

test/failure_handler/src/share/conf/common.properties line 67:

> 65: cores=jhsdb.jstack
> 66: jhsdb.jstack.app=jhsdb
> 67: jhsdb.jstack.args=jstack --mixed --core %p --exe %java

strictly speaking, we can't guarantee that the executable is always `bin/java`, 
but it's the most common and the most interesting case, so this assumption is 
good enough for our pourposes.

could you please add a comment explaining this so the further reading won't be 
puzzled?

test/failure_handler/src/share/conf/mac.properties line 68:

> 66: native.jhsdb.app=bash
> 67: native.jhsdb.jstack.delimiter=\0
> 68: native.jhsdb.jstack.args=-c\0DevToolsSecurity --status | grep -q enabled 
> && jhsdb jstack --mixed --pid %p

AFAICS `jhsdb` does check "Developer mode" on macos before trying to attach and 
will just report 'lack of privileges' (as opposed to hanging with a modal 
window asking for permission), so you can move `jshdb.jstack` to 
`common.properties`.

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

Changes requested by iignatyev (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/4234

Reply via email to