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

Backout JDK-8244287 from 11u: it causes several crashes

    Details

    • Subcomponent:
      jfr
    • Introduced In Version:
    • Resolved In Build:
      b10

      Backports

        Description

        From: https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2020-September/003886.html

        """
        we have seen several crashes on several platforms after this change was pushed.

        Aarch64 example:
        Stack: [0x0000ffff90437000,0x0000ffff90637000], sp=0x0000ffff90635520, free space=2041k
        Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.so+0x9fb0f8] ObjectSampleCheckpoint::write_stacktrace(JfrStackTrace const*, JfrCheckpointWriter&)+0x208
        V [libjvm.so+0x9fb770] StackTraceBlobInstaller::install(ObjectSample*)+0x1b8
        V [libjvm.so+0x9fba40] ObjectSampleCheckpoint::on_rotation(ObjectSampler const*, JfrStackTraceRepository&)+0x150
        V [libjvm.so+0x72df6c] JfrRecorderService::pre_safepoint_write()+0x3a4
        V [libjvm.so+0x72e828] JfrRecorderService::write()+0x58
        V [libjvm.so+0x72fd2c] JfrRecorderService::rotate(int)+0x3b4
        V [libjvm.so+0x730628] recorderthread_entry(JavaThread*, Thread*)+0x160
        V [libjvm.so+0xbb2dd0] JavaThread::thread_main_inner()+0xd8
        V [libjvm.so+0xbb08fc] Thread::call_run()+0x94
        V [libjvm.so+0xa21718] thread_native_entry(Thread*)+0x108
        C [libpthread.so.0+0x7088] start_thread+0xb0

        siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000008

        This backport uses a different JfrStackFrame constructor (which was probably unused before):
        JfrStackFrame::JfrStackFrame(const traceid& id, int bci, int type, int lineno) :
          _method(NULL), _methodid(id), _line(lineno), _bci(bci), _type(type) {}

        It sets _method to NULL!

        Should probably be:
        JfrStackFrame::JfrStackFrame(const traceid& id, int bci, int type, int lineno, const Method* method) :
          _method(method), _methodid(id), _line(lineno), _bci(bci), _type(type) {}

        and:
        _frames[count] = JfrStackFrame(mid, bci, type, lineno, method);
        """

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jbachorik Jaroslav BachorĂ­k
                  Reporter:
                  neugens Mario Torre
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: