[ https://issues.apache.org/jira/browse/HDFS-838?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Colin Patrick McCabe resolved HDFS-838. --------------------------------------- Resolution: Fixed Fix Version/s: 1.0.0 The call to JNI_CreateJavaVM is now done under the jvmMutex, at least in branch-1, branch-2, and trunk. So this should no longer be an issue. > libhdfs causes a segfault due to race condition > ----------------------------------------------- > > Key: HDFS-838 > URL: https://issues.apache.org/jira/browse/HDFS-838 > Project: Hadoop HDFS > Issue Type: Bug > Components: libhdfs > Affects Versions: 0.20.1, 0.20.2, 0.21.0, 0.22.0 > Reporter: Brian Bockelman > Fix For: 1.0.0 > > > The first libhdfs operation that is performed is not thread-safe; this is > because the creation of a JVM is not protected by a mutex. > We have been able to trigger this by doing the following: > 1) Start a few GNOME sessions on the box. Make sure you are running the > gnome volume manager. The volume manager will perform a GETATTR operation on > any newly mounted file system. > 2) Start fuse-dfs in debug mode. As soon as it starts, you will see two or > more GETATTR calls almost instantly. > 3) fuse-dfs segfaults; if you ran this with GDB, you'll see a stack trace > coming from libhdfs starting up a new JVM. > I imagine you could replicate this more simply by having two threads that > call libhdfs simultaneously. > I have a patch for fuse-dfs which avoids the problem, but we probably need to > fix it in libhdfs itself. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira