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

[JVMCI] CompilerToVM::getResolvedJavaMethod has a crash when providing HotSpotResolvedJavaMethodImpl as base

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P2 P2
    • 9
    • 9
    • hotspot

      Try to provide valid instance of HotSpotResolvedJavaMethodImpl to CompilerToVM::getResolvedJavaMethod with offset set to 0. It'll lead to a crash:

      assert(((Metadata*)obj)->is_valid()) failed: obj is valid

      Stack: [0x00007f778d1e6000,0x00007f778d2e7000], sp=0x00007f778d2e4880, free space=1018k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x121a981] VMError::report_and_die()+0x151
      V [libjvm.so+0x84c3fb] report_vm_error(char const*, int, char const*, char const*)+0x7b
      V [libjvm.so+0x4ac7ef] methodHandle::methodHandle(Method*)+0xbf
      V [libjvm.so+0xc369c9] c2v_getResolvedJavaMethod(JNIEnv_*, _jobject*, _jobject*, long)+0x619
      ...

      an test example to reproduce problem and hs_err are attached


      Also, probably related issue is that externally setting Method** raw pointer to HotSpotResolvedJavaMethodImpl and providing it to getResolvedJavaMethod(uncomment line 85-93 in attached source to enable this logic) will make it return null value.

            never Tom Rodriguez
            dpochepk Dmitrij Pochepko
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: