[
https://issues.apache.org/jira/browse/HADOOP-12955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15215195#comment-15215195
]
Colin Patrick McCabe commented on HADOOP-12955:
-----------------------------------------------
In general, the other native libraries expect {{getLibraryName}} to succeed if
the initialization succeeded. There may be some extremely rare cases where it
doesn't, but this should reflect an internal bug 99% of the time. In contrast,
initialization routinely fails because of missing libraries.
I think it would be safer to have the initialization function set up a static
variable so that it contained the library name. That way, we only have to
expect a failure in one place, and we wouldn't even need a {{getLibraryName}}
function.
> Fix bugs in the initialization of the ISA-L library JNI bindings
> ----------------------------------------------------------------
>
> Key: HADOOP-12955
> URL: https://issues.apache.org/jira/browse/HADOOP-12955
> Project: Hadoop Common
> Issue Type: Bug
> Components: native
> Reporter: Kai Zheng
> Assignee: Kai Zheng
> Attachments: HADOOP-12955-v1.patch, HADOOP-12955-v2.patch,
> HADOOP-12955-v3.patch
>
>
> Ref. the comment
> [here|https://issues.apache.org/jira/browse/HADOOP-11540?focusedCommentId=15207619&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15207619].
>
> When run hadoop checknative, it also failed. Got something like below from
> log:
> {noformat}
> Stack: [0x00007f2b9d405000,0x00007f2b9d506000], sp=0x00007f2b9d504748, free
> space=1021k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
> code)
> V [libjvm.so+0xa90c90] UTF8::unicode_length(char const*)+0x0
> V [libjvm.so+0x6ddfc3] jni_NewStringUTF+0xc3
> j
> org.apache.hadoop.io.erasurecode.ErasureCodeNative.getLibraryName()Ljava/lang/String;+0
> j org.apache.hadoop.util.NativeLibraryChecker.main([Ljava/lang/String;)V+212
> v ~StubRoutines::call_stub
> V [libjvm.so+0x68c616] JavaCalls::call_helper(JavaValue*, methodHandle*,
> JavaCallArguments*, Thread*)+0x1056
> V [libjvm.so+0x6cdc32] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*,
> JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*)+0x362
> V [libjvm.so+0x6ea63a] jni_CallStaticVoidMethod+0x17a
> C [libjli.so+0x7bcc] JavaMain+0x80c
> C [libpthread.so.0+0x8182] start_thread+0xc2
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> j
> org.apache.hadoop.io.erasurecode.ErasureCodeNative.getLibraryName()Ljava/lang/String;+0
> j org.apache.hadoop.util.NativeLibraryChecker.main([Ljava/lang/String;)V+212
> v ~StubRoutines::call_stub
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)