[ 
https://issues.apache.org/jira/browse/HDFS-14488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16844481#comment-16844481
 ] 

Kotomi edited comment on HDFS-14488 at 5/21/19 3:58 AM:
--------------------------------------------------------

Updated libhdfs from 2.7.3 to latest 3.2, crash still happened:
{code:java}
38 void hdfsThreadDestructor(void *v)
39 {
40   JavaVM *vm;
41   struct ThreadLocalState *state = (struct ThreadLocalState*)v;
42   JNIEnv *env = state->env;;
43   jint ret;
44
45   /* Detach the current thread from the JVM */
46   if (env) {
47     ret = (*env)->GetJavaVM(env, &vm);
48     if (ret) {
49       fprintf(stderr, "hdfsThreadDestructor: GetJavaVM failed with error 
%d\n",
50           ret);
51       (*env)->ExceptionDescribe(env);
52     } else {
53       (*vm)->DetachCurrentThread(vm);
54     }
55   }
......{code}
Backtrace:
{code:java}
#1920 0x00007fb7c20e9a47 in abort () from /usr/lib64/libc.so.6
#1921 0x00007fb7c19d7769 in os::abort(bool) () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1922 0x00007fb7c1b9c803 in VMError::report_and_die() () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1923 0x00007fb7c19e19f5 in JVM_handle_linux_signal () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1924 0x00007fb7c19d48b8 in signalHandler(int, siginfo*, void*) () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1925 <signal handler called>
#1926 0x00007fb6cc06a18d in hdfsThreadDestructor (v=0x7fb6d07946e0) at 
/root/workspace/hadoop/hadoop-3.2.0-src/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/os/posix/thread_local_storage.c:47
#1927 0x00007fb7c28a2bd2 in __nptl_deallocate_tsd () from 
/usr/lib64/libpthread.so.0
#1928 0x00007fb7c28a2de3 in start_thread () from /usr/lib64/libpthread.so.0
#1929 0x00007fb7c21afead in clone () from /usr/lib64/libc.so.6
{code}


was (Author: kotomi):
Updated libhdfs from 2.7.3 to latest 3.2, crash still happened:
{code:java}
38 void hdfsThreadDestructor(void *v)
39 {
40   JavaVM *vm;
41   struct ThreadLocalState *state = (struct ThreadLocalState*)v;
42   JNIEnv *env = state->env;;
43   jint ret;
44
45   /* Detach the current thread from the JVM */
46   if (env) {
47     ret = (*env)->GetJavaVM(env, &vm);
48     if (ret) {
49       fprintf(stderr, "hdfsThreadDestructor: GetJavaVM failed with error 
%d\n",
50           ret);
51       (*env)->ExceptionDescribe(env);
52     } else {
53       (*vm)->DetachCurrentThread(vm);
54     }
55   }
......{code}
Backtrace:

 
{code:java}
#1920 0x00007fb7c20e9a47 in abort () from /usr/lib64/libc.so.6
#1921 0x00007fb7c19d7769 in os::abort(bool) () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1922 0x00007fb7c1b9c803 in VMError::report_and_die() () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1923 0x00007fb7c19e19f5 in JVM_handle_linux_signal () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1924 0x00007fb7c19d48b8 in signalHandler(int, siginfo*, void*) () from 
/usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
#1925 <signal handler called>
#1926 0x00007fb6cc06a18d in hdfsThreadDestructor (v=0x7fb6d07946e0) at 
/root/workspace/hadoop/hadoop-3.2.0-src/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/os/posix/thread_local_storage.c:47
#1927 0x00007fb7c28a2bd2 in __nptl_deallocate_tsd () from 
/usr/lib64/libpthread.so.0
#1928 0x00007fb7c28a2de3 in start_thread () from /usr/lib64/libpthread.so.0
#1929 0x00007fb7c21afead in clone () from /usr/lib64/libc.so.6
{code}

> libhdfs SIGSEGV during shutdown of Java
> ---------------------------------------
>
>                 Key: HDFS-14488
>                 URL: https://issues.apache.org/jira/browse/HDFS-14488
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: native
>    Affects Versions: 2.7.3, 3.2.0
>         Environment: Centos 7
> gcc (GCC) 8.3.0
>            Reporter: Kotomi
>            Priority: Major
>
> For short, it‘s quite similar to 
> https://issues.apache.org/jira/browse/HDFS-13585,but backtrace is different.
> We are using libhdfs for hdfs support in our native library, as a plugin, 
> _dlopen_ when hdfs path detected and _dlclose_ when application closes.
> Crash happens randomly, during shutdown of Java. GDB shows in function 
> hdfsThreadDestructor, JNIEnv v is not NULL but looks like a wild pointer. 
> Therefore, it crashes when trying to get JavaVm from its own JNIEnv.
> {code:java}
> 43: ret = (*env)->GetJavaVM(env, &vm);
> {code}
> Any workarounds? Thx.
> Backtrace from core:
> {code:java}
> #1920 0x00007fac0386da47 in abort () from /usr/lib64/libc.so.6
> #1921 0x00007fac0315b769 in os::abort(bool) () from 
> /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
> #1922 0x00007fac03320803 in VMError::report_and_die() () from 
> /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
> #1923 0x00007fac031659f5 in JVM_handle_linux_signal () from 
> /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
> #1924 0x00007fac031588b8 in signalHandler(int, siginfo*, void*) () from 
> /usr/java/jdk1.8.0_201-amd64/jre/lib/amd64/server/libjvm.so
> #1925 <signal handler called>
> #1926 0x00007fab028f7ef0 in hdfsThreadDestructor (v=0x7fab840919f8) at 
> /home/ambari-qa/hadoop/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/posix/thread_local_storage.c:43
> #1927 0x00007fac04026bd2 in __nptl_deallocate_tsd () from 
> /usr/lib64/libpthread.so.0
> #1928 0x00007fac04026de3 in start_thread () from /usr/lib64/libpthread.so.0
> #1929 0x00007fac03933ead in clone () from /usr/lib64/libc.so.6
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to