[ https://issues.apache.org/jira/browse/HDFS-10257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232916#comment-15232916 ]
Colin Patrick McCabe edited comment on HDFS-10257 at 4/8/16 8:59 PM: --------------------------------------------------------------------- Thanks for following up, guys. I agree that we need the pthread destructor in order to avoid leaking memory. was (Author: cmccabe): Thanks for following up, guys. I agree that we need the pthread destructor to avoid leaking memory. > Quick Thread Local Storage set-up has a small flaw > -------------------------------------------------- > > Key: HDFS-10257 > URL: https://issues.apache.org/jira/browse/HDFS-10257 > Project: Hadoop HDFS > Issue Type: Bug > Components: libhdfs > Affects Versions: 2.6.4 > Environment: Linux > Reporter: Stephen Bovy > Priority: Minor > Original Estimate: 72h > Remaining Estimate: 72h > > In jni_helper.c in the getJNIEnv function > The “THREAD_LOCAL_STORAGE_SET_QUICK(env);” Macro is in the wrong > location; > It should precede the “threadLocalStorageSet(env)” as follows :: > THREAD_LOCAL_STORAGE_SET_QUICK(env); > if (threadLocalStorageSet(env)) { > return NULL; > } > AND IN “thread_local_storage.h” the macro: > “THREAD_LOCAL_STORAGE_SET_QUICK” > should be as follows :: > #ifdef HAVE_BETTER_TLS > #define THREAD_LOCAL_STORAGE_GET_QUICK() \ > static __thread JNIEnv *quickTlsEnv = NULL; \ > { \ > if (quickTlsEnv) { \ > return quickTlsEnv; \ > } \ > } > #define THREAD_LOCAL_STORAGE_SET_QUICK(env) \ > { \ > quickTlsEnv = (env); \ > return env; > } > #else > #define THREAD_LOCAL_STORAGE_GET_QUICK() > #define THREAD_LOCAL_STORAGE_SET_QUICK(env) > #endif -- This message was sent by Atlassian JIRA (v6.3.4#6332)