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

Hohensee, Paul hohensee at amazon.com
Thu Oct 29 21:03:41 UTC 2020


Btw, this looks to me like a clean backport, so didn't need a review, just a tag and backport request comment in the JBS issue.

On 10/29/20, 2:00 PM, "Hohensee, Paul" <hohensee at amazon.com> wrote:

    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