You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Brian Bockelman (JIRA)" <ji...@apache.org> on 2009/12/16 15:15:18 UTC

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

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: contrib/libhdfs
    Affects Versions: 0.20.1, 0.20.2, 0.21.0, 0.22.0
            Reporter: Brian Bockelman


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.
-
You can reply to this email to add a comment to the issue online.