RFR : 8132961 : JEP 279 Improve Test-Failure Troubleshooting

Igor Ignatyev igor.ignatyev at oracle.com
Tue Nov 24 19:13:19 UTC 2015

> 3579 lines changed: 3579 ins; 0 del; 0 mod; 0 unchg


Could you please review the webrev[0] for JEP 279[1]?

The scope of the JEP is an implementation of a library which uses jtreg timeout handler and observer extension points to collect information about environment in case of test failures (including timeouts) and about test processes in case of timeouts. This data is then presented together with the test failure to simplify analysis.

To make it easier to specify which tools should be run by the library on which platform when a test failure or timeout occurs, we use properties files to configure the library. Each platform family uses its own property file (named <family>.properties) and common.properties, which contains platform independent tools, such as jps. Using property files allows to easily extend the tools that are used to collect information on test failure or timeout in the future. See the JEP for a more thorough overview of the collected data. Currently, we are using the following tools:
- on all platforms[3]: jps, jstack, jmap, jinfo, jcmd
- on linux[4]: ps, pmap, lsof, lslocks, gdb, gcore, id, who, last, df, env, dmesg, sysctl, top, free, vmstat, netstat
- on solaris[5]: pgrep, pmap, pfiles, pstack, gcore, id, who, last, df, env, dmesg, prtconf, sysdef, swap, ps, top, vmstat, pagesize, netstat
- on mac[6]: pgrep, vmmap, heap, leaks, spindump, lldb, gcore, id, who, last, df, env, dmesg, sysctl, ps, top, vm_stat, netstat
- on windows[7]: wmic, pmap, handle, cdb, id, who, last, df, env, powershell, tasklist, ps, top, free, vmstat, openfiles, netstat

More information can be found in the JEP[1] and README[2].

The library integration into makefiles will be done later as the fix for JDK-8132962[8].

[0] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/
[1] https://bugs.openjdk.java.net/browse/JDK-8075621
[2] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/README.html
[3] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/src/share/conf/common.properties.html
[4] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/src/share/conf/linux.properties.html
[5] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/src/share/conf/solaris.properties.html
[6] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/src/share/conf/mac.properties.html
[7] http://cr.openjdk.java.net/~iignatyev/8132961/webrev.00/test/failure_handler/src/share/conf/windows.properties.html
[8] https://bugs.openjdk.java.net/browse/JDK-8132962

— Igor

More information about the hotspot-dev mailing list