The mishandling of errors in the jni user-to-groups mapping modules can cause segmentation faults in subsequent calls. Here are the bugs:
1) If hadoop_user_info_fetch() returns an error code that is not ENOENT, the error may not be handled at all. This bug was found by Chris Nauroth.
2) In hadoop_user_info_fetch() and hadoop_group_info_fetch(), the global errno is directly used. This is not thread-safe and could be the cause of some failures that disappeared after enabling the big lookup lock.
3) In the above methods, there is no limit on retries.