RFR Backport 8179083: Uninitialized notifier in Java Monitor Wait tracing event

Hohensee, Paul hohensee at amazon.com
Thu Oct 29 21:00:47 UTC 2020


Lgtm.

Thanks,
Paul

On 9/10/20, 5:02 AM, "jdk8u-dev on behalf of Yangfei (Felix)" <jdk8u-dev-retn at openjdk.java.net on behalf of felix.yang at huawei.com> wrote:

    Hi,

    Please review this one-line change of 8u.

    Original bug: https://bugs.openjdk.java.net/browse/JDK-8179083
    Original patch: http://hg.openjdk.java.net/jdk/jdk/rev/d5610f86423f

    The original patch does not apply cleanly to jdk8u-dev due to path difference.
    Webrev for 8u: http://cr.openjdk.java.net/~fyang/8179083-8u/webrev.00/

    The following JFR test fails randomly on one of our aarch64 linux platform:
    $jtreg -othervm jdk/test/jdk/jfr/event/runtime/TestJavaMonitorWaitTimeOut.java

    When it fails, we have error messages:

    jdk.JavaMonitorWait {
      startTime = 10:02:30.341
      duration = 10.064 ms
      monitorClass = jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut$Lock (classLoader = sun/misc/Launcher$AppClassLoader)
      notifier = "Finalizer" (javaThreadId = 3)
      timeout = 10.000 ms
      timedOut = true
      address = 0xFFFF380044E0
      eventThread = "main" (javaThreadId = 1)
    }


    jdk.JavaMonitorWait {
      startTime = 10:02:30.352
      duration = 64.700 us
      monitorClass = jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut$Lock (classLoader = sun/misc/Launcher$AppClassLoader)
      notifier = "Notifier" (javaThreadId = 15)
      timeout = 40.000 s
      timedOut = false
      address = 0xFFFF380044E0
      eventThread = "main" (javaThreadId = 1)
    }


    jdk.JavaMonitorWait {
      startTime = 10:02:30.352
      duration = 11.062 ms
      monitorClass = jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut$Lock (classLoader = sun/misc/Launcher$AppClassLoader)
      notifier = "Finalizer" (javaThreadId = 3)
      timeout = 11.000 ms
      timedOut = true
      address = 0xFFFF380044E0
      eventThread = "main" (javaThreadId = 1)
    }


    Exception in thread "main" java.lang.RuntimeException: Invalid thread: expected Finalizer to equal null
            at jdk.test.lib.Asserts.fail(Asserts.java:594)
            at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
            at jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut.assertTimeOutEvent(TestJavaMonitorWaitTimeOut.java:119)
            at jdk.jfr.event.runtime.TestJavaMonitorWaitTimeOut.main(TestJavaMonitorWaitTimeOut.java:98)

    Here, the notifier field of the first and third item is not correct.  "Finalizer" thread is not anticipated here.

    Performed full jtreg test with release builds both on aarch64-linux and x86_64-linux platforms.
    OK to backport?

    Thanks,
    Felix



More information about the jdk8u-dev mailing list