Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8203410

Zero: Disable jfr feature by default

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 11
    • None
    • infrastructure
    • None
    • Zero

    • b15
    • generic
    • linux

        Starting a fastdebug Zero JVM with +XX:StartFlightRecording asserts with:
        build/linux-x86_64-normal-zero-fastdebug/jdk/bin/java -XX:StartFlightRecording -version
        # To suppress the following error report, specify this argument
        # after -XX: or in .hotspotrc: SuppressErrorAt=/os_linux.cpp:4076
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (/disk/openjdk/upstream-sources/openjdk-hs/src/hotspot/os/linux/os_linux.cpp:4076), pid=425553, tid=425564
        # assert(ms < 1000) failed: Un-interruptable sleep, short time use only
        #
        # JRE version: OpenJDK Runtime Environment (11.0) (fastdebug build 11-internal+0-adhoc.sgehwolf.openjdk-hs)
        # Java VM: OpenJDK 64-Bit Zero VM (fastdebug 11-internal+0-adhoc.sgehwolf.openjdk-hs, interpreted mode, serial gc, linux-amd64)
        # Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e" (or dumping to /disk/openjdk/upstream-sources/openjdk-hs/core.425553)
        #
        # An error report file with more information is saved as:
        # /disk/openjdk/upstream-sources/openjdk-hs/hs_err_pid425553.log
        #
        # If you would like to submit a bug report, please visit:
        # http://bugreport.java.com/bugreport/crash.jsp
        #
        Current thread is 425564
        Dumping core ...
        Aborted (core dumped)

        The crash originates from JFR code:

        Thread 12 "java" hit Breakpoint 1, os::naked_short_sleep (ms=9223372036854775807) at /disk/openjdk/upstream-sources/openjdk-hs/src/hotspot/os/linux/os_linux.cpp:4076
        4076 assert(ms < 1000, "Un-interruptable sleep, short time use only");
        (gdb) bt
        #0 os::naked_short_sleep (ms=9223372036854775807) at /disk/openjdk/upstream-sources/openjdk-hs/src/hotspot/os/linux/os_linux.cpp:4076
        #1 0x00007ffff671222b in JfrThreadSampler::run (this=0x7ffff024a1e0) at /disk/openjdk/upstream-sources/openjdk-hs/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp:479
        #2 0x00007ffff6a3c560 in thread_native_entry (thread=0x7ffff024a1e0) at /disk/openjdk/upstream-sources/openjdk-hs/src/hotspot/os/linux/os_linux.cpp:710
        #3 0x00007ffff79a8564 in start_thread () from /lib64/libpthread.so.0
        #4 0x00007ffff72c931f in clone () from /lib64/libc.so.6
        (gdb) list
        4071 // So calling this with 0 is an alternative.
        4072 //
        4073 void os::naked_short_sleep(jlong ms) {
        4074 struct timespec req;
        4075
        4076 assert(ms < 1000, "Un-interruptable sleep, short time use only");
        4077 req.tv_sec = 0;
        4078 if (ms > 0) {
        4079 req.tv_nsec = (ms % 1000) * 1000000;
        4080 } else {
        (gdb) p ms
        $1 = 9223372036854775807

        Until there is good support of Zero+JFR we should not build the feature by default.

              sgehwolf Severin Gehwolf
              sgehwolf Severin Gehwolf
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: