Congxian Qiu created FLINK-23346:
------------------------------------

             Summary: RocksDBStateBackend may core dump in 
flink_compactionfilterjni.cc
                 Key: FLINK-23346
                 URL: https://issues.apache.org/jira/browse/FLINK-23346
             Project: Flink
          Issue Type: Bug
          Components: Runtime / State Backends
    Affects Versions: 1.12.4, 1.13.1, 1.14.0
            Reporter: Congxian Qiu


The code in [flink_compactionfilte.cpp 
|https://github.com/ververica/frocksdb/blob/49bc897d5d768026f1eb816d960c1f2383396ef4/java/rocksjni/flink_compactionfilterjni.cc#L21]
{code:cpp}
    inline void CheckAndRethrowException(JNIEnv* env) const {
    if (env->ExceptionCheck()) {
      env->ExceptionDescribe();
      env->Throw(env->ExceptionOccurred());
    }
{code}
may core dump in some sence, please see more information here[1][2][3]

We can fix it by changing this to
{code:cpp}
    inline void CheckAndRethrowException(JNIEnv* env) const {
    if (env->ExceptionCheck()) {
      env->Throw(env->ExceptionOccurred());
    }
  }
{code}
or
{code:cpp}
   inline void CheckAndRethrowException(JNIEnv* env) const {
    if (env->ExceptionCheck()) {
      jobject obj = env->ExceptionOccurred();
      env->ExceptionDescribe();
      env->Throw(obj);
    }
  }
{code}
[1] 
[https://stackoverflow.com/questions/30971068/does-jniexceptiondescribe-implicitily-clear-the-exception-trace-of-the-jni-env]
 [2] [https://bugs.openjdk.java.net/browse/JDK-4067541]
 [3] [https://bugs.openjdk.java.net/browse/JDK-8051947]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to