[
https://issues.apache.org/jira/browse/HDFS-10257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232916#comment-15232916
]
Colin Patrick McCabe commented on HDFS-10257:
---------------------------------------------
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)