You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Colin Patrick McCabe (JIRA)" <ji...@apache.org> on 2012/07/06 20:40:34 UTC

[jira] [Resolved] (HDFS-838) libhdfs causes a segfault due to race condition

     [ 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