[
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]