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

[JVMCI] OOME causes crash while translating exceptions

XMLWordPrintable

    • 20
    • b13

      JDK-8297431 added code for special handling of OutOfMemoryError when translating an exception between libjvmci and HotSpot[1].
      Unfortunately, this code was deleted in JDK-8298099 when moving the exception translation mechanism to VMSupport[2].
      This causes the VM to crash when an OOME occurs while translating an exception from HotSpot to libjvmci:

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0x00000001198b925c, pid=86445, tid=41987
      #
      # JRE version: Java(TM) SE Runtime Environment GraalVM LIBGRAAL_EE 23.0.0-dev (20.0.1+6) (fastdebug build 20.0.1+6-jvmci-23.0-b08)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM GraalVM LIBGRAAL_EE 23.0.0-dev (fastdebug 20.0.1+6-jvmci-23.0-b08, mixed mode, tiered, jvmci, jvmci compiler, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
      # Problematic frame:
      # C [libjvmcicompiler.dylib+0x18b925c] VMSupport_decodeAndThrowThrowable_6e5efc69ed24721573d80c8bd9388a70726b05d9+0x1c
      #

      Current CompileTask:
      JVMCI-native: 625 218 4 java.lang.String::coder (15 bytes)

      Stack: [0x00000001716a8000,0x0000000171aab000], sp=0x0000000171aa9ff0, free space=4103k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      C [libjvmcicompiler.dylib+0x18b925c] VMSupport_decodeAndThrowThrowable_6e5efc69ed24721573d80c8bd9388a70726b05d9+0x1c
      C [libjvmcicompiler.dylib+0x157788c] JNIJavaCallWrapperHolder_invoke_J_J_7350c0c1adfe87c35c2f17614c6f7ac562e74345+0x7c
      C [libjvmcicompiler.dylib+0x10b3a34] JNIJavaCallVariantWrapperHolder_invokeJJIJ_J_VA_LIST_8a718de8224c87c5013a17d7fcef8924c81685f8+0xd4
      V [libjvm.dylib+0xa44470] JNIEnv_::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+0x24
      V [libjvm.dylib+0xa61568] HotSpotToSharedLibraryExceptionTranslation::decode(JavaThread*, Klass*, long)+0x90
      V [libjvm.dylib+0xa450d8] ExceptionTranslation::doit(JavaThread*)+0x300
      V [libjvm.dylib+0xa45338] JVMCIEnv::transfer_pending_exception_to_jni(JavaThread*, JVMCIEnv*, JVMCIEnv*)+0x14c
      V [libjvm.dylib+0xaa4344] JVMCIRuntime::initialize(JVMCIEnv*)+0x72c
      V [libjvm.dylib+0xaa92a4] JVMCIRuntime::compile_method(JVMCIEnv*, JVMCICompiler*, methodHandle const&, int)+0x144
      V [libjvm.dylib+0x4edb4c] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x76c
      V [libjvm.dylib+0x4ed20c] CompileBroker::compiler_thread_loop()+0x288
      V [libjvm.dylib+0x898700] JavaThread::thread_main_inner()+0x2a0
      V [libjvm.dylib+0xfd1c30] Thread::call_run()+0x220
      V [libjvm.dylib+0xd9bbf0] thread_native_entry(Thread*)+0x160
      C [libsystem_pthread.dylib+0x7878] _pthread_start+0x140


      [1] https://github.com/openjdk/jdk/commit/952e10055135613e8ea2b818a4f35842936f5633#diff-4d3a3b7e7e12e1d5b4cf3e4677d9e0de5e9df3bbf1bbfa0d8d43d12098d67dc4R222-R234
      [2] https://github.com/openjdk/jdk/commit/8b69a2e434ad2fa3369079622b57afb973d5bd9a#diff-7292551772c27b7152a3333f03cbbad90a897c5e37c6a97d4026be835e6d8fe1R121-R125

            dnsimon Douglas Simon
            dnsimon Douglas Simon
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: