[
https://issues.apache.org/jira/browse/HDFS-4387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13551618#comment-13551618
]
Colin Patrick McCabe commented on HDFS-4387:
--------------------------------------------
After some investigation, it looks like this is a result of you using the
{{libjvm.so}} from {{JamVM}}.
Although this isn't documented anywhere, some examination of the JamVM source
(as well as empirical tests) shows that JamVM crashes if you call
{{JNI_GetCreatedJavaVMs}} prior to calling {{JNI_CreateJavaVM}}. Since we
currently do this in {{libhdfs}}, we get the crash.
There is an argument to be made that {{libhdfs}} should not try to see if a VM
is already running before we create one. Since such a VM, presumably created
by another shared library or the application itself, would probably not have
the correct {{CLASSPATH}}, it would be unlikely to work anyway. Still, it's
unfortunate that we (apparently) have to take this step.
It looks like JamVM is installed by default on Ubuntu 12.10, even on the server
spin-- for whatever reason. So we probably do need to fix this. It would also
be nice if we avoided using JamVM by default.
> test_libhdfs_threaded SEGV on OpenJDK 7
> ---------------------------------------
>
> Key: HDFS-4387
> URL: https://issues.apache.org/jira/browse/HDFS-4387
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: libhdfs
> Affects Versions: 3.0.0
> Reporter: Andy Isaacson
> Priority: Minor
>
> Building and running tests on OpenJDK 7 on Ubuntu 12.10 fails with {{mvn test
> -Pnative}}. The output is hard to decipher but the underlying issue is that
> {{test_libhdfs_native}} segfaults at startup.
> {noformat}
> (gdb) run
> Starting program:
> /mnt/trunk/hadoop-hdfs-project/hadoop-hdfs/target/native/test_libhdfs_threaded
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff739a897 in attachJNIThread (name=0x0, is_daemon=is_daemon@entry=0
> '\000', group=0x0) at thread.c:768
> 768 thread.c: No such file or directory.
> (gdb) where
> #0 0x00007ffff739a897 in attachJNIThread (name=0x0,
> is_daemon=is_daemon@entry=0 '\000', group=0x0) at thread.c:768
> #1 0x00007ffff7395020 in attachCurrentThread (is_daemon=0, args=0x0,
> penv=0x7fffffffddb8) at jni.c:1454
> #2 Jam_AttachCurrentThread (vm=<optimized out>, penv=0x7fffffffddb8,
> args=0x0) at jni.c:1466
> #3 0x00007ffff7bcf979 in getGlobalJNIEnv () at
> /mnt/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/jni_helper.c:527
> #4 getJNIEnv () at
> /mnt/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/jni_helper.c:585
> #5 0x0000000000402512 in nmdCreate (conf=conf@entry=0x7fffffffdeb0) at
> /mnt/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/native_mini_dfs.c:49
> #6 0x00000000004016e1 in main () at
> /mnt/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/test_libhdfs_threaded.c:283
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira