On 9/20/16 11:07 PM, Chris Plummer wrote:
Hello,

Please help review the following:

https://bugs.openjdk.java.net/browse/JDK-8161225
http://cr.openjdk.java.net/~cjplummer/8161225/webrev.00/

hotspot/src/share/vm/prims/jvmtiEnter.xsl
    L490:           log_trace(jvmti)("[-] %s %s(%d)",  func_name,
        nit: extra space after the comma
        nit: extra space at the end of the line

jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c
    No comments.

jdk/test/ProblemList.txt
    No comments.

jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java
    I presume when you change the assertTrue() call to an
    OutputAnalyzer.should...() call that the new import can
    be deleted.

One thing that wasn't clear from your write up below... when you detect
a PHASE error, you now return a NULL (but the code is clear).

Thumbs up. Don't need to see a new webrev for fixing any nits.

Dan



The main fix is in JPLISAgent.c, which is to no longer call jplis_assert_msg() when there is a PHASE error, and also remove the test from ProblemList.txt.

I also fixed a problem with the test. It was not checking if the subprocess had failed to terminate properly. The result was if the sub-process crashed, then the test would pass. I noticed this when I temporarily forced an assert when there was a PHASE error, and suddenly the test was always passing, yet there was an hs_err.log file.

Lastly, I made a slight improvement to the trace output when there is a PHASE error, so now the PHASE number is included in the trace output. So the trace output now looks like the following when the test triggers the PHASE error (this is without the fix being made to the test):

    [0.376s][trace][jvmti] [-] GetNamedModule JVMTI_ERROR_WRONG_PHASE(8)

Tested by running the test 5 times on each supported platform, and also ran nsk.jvmti and jck/vm/jvmti.

thanks,

Chris

Reply via email to