Hey Weiming,

We've recently found a race condition in FUSE-DFS that can be triggered when 
you run it from a host where GNOME is also running.  It causes a segfault like 
you report below.

The patch attached works for 19.1.  Another option is to shut down all the 
instances of GNOME on your computer, then mount.

Brian

Attachment: hadoop-fuse-0.19.1-init_race.patch
Description: Binary data


On Dec 16, 2009, at 4:20 AM, Weiming Lu wrote:

> Thanks very much.
> We use Ubuntu 8.0.4, and the kernel is 2.6.24-16-generic.
> When we run jps, it shows:
> 12405 startup.jar
> 5950 startup.jar
> 19216 SecondaryNameNode
> 25381 Jps
> 19053 NameNode
> 19289 JobTracker
> 
> When I pass "-o private" for fuse-dfs just as: fuse_dfs
> dfs://10.15.62.4:54310 /mnt/dfs -oprivate -d
> We see the debug message:
> port=54310,server=10.15.62.4
> fuse-dfs didn't recognize /mnt/dfs,-2
> fuse-dfs ignoring option -d
> FUSE library version: 2.8.1
> nullpath_ok: 0
> unique: 1, opcode: INIT (26), nodeid: 0, insize: 56
> INIT: 7.9
> flags=0x0000000b
> max_readahead=0x00020000
>   INIT: 7.12
>   flags=0x00000011
>   max_readahead=0x00020000
>   max_write=0x00020000
>   unique: 1, success, outsize: 40
> unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56
> getattr /
> unique: 3, opcode: GETATTR (3), nodeid: 1, insize: 56
> getattr /
> #
> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  Internal Error (sharedRuntime.cpp:552), pid=25313, tid=1107450192
> #  Error: guarantee(cb != __null,"exception happened outside
> interpreter, nmethods and vtable stubs (1)")
> #
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0-b23 mixed mode linux-amd64)
> # An error report file with more information is saved as:
> # /tmp/hs_err_pid25313.log
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> #
> Aborted
> 
> When we list the /mnt/, the message is :
> ls: cannot access dfs: Transport endpoint is not connected
> 
> Thanks.
> 
> 
> On Wed, Dec 16, 2009 at 3:40 PM, Eli Collins <[email protected]> wrote:
>> The "fuse-dfs didn't recognize <mntpoint>" and "fuse-dfs ignoring
>> option -d" are expected, they get passed along from fuse-dfs to fuse
>> (via fuse_main).
>> 
>> Does it work if you pass -o private?  Still nothing reported by dmesg?
>>  What does jps indicate is running?What linux distribution and kernel
>> are you using?
>> 
>> Thanks,
>> Eli
>> 
>> 
>> On Tue, Dec 15, 2009 at 5:54 PM, Weiming Lu <[email protected]> wrote:
>>> Thanks for your reply. I have added the "-d" option when calling the
>>> fuse_dfs, but I can't see any stack traces. The ONLY thing I see on
>>> the console is:
>>> port=54310,server=10.15.62.4
>>> fuse-dfs didn't recognize /mnt/dfs,-2
>>> fuse-dfs ignoring option -d
>>> fuse-dfs ignoring option -o
>>> fuse-dfs didn't recognize allow_other,-2
>>> fuse: invalid argument `allow_other'
>>> 
>>> The option "-d" is ignored. Maybe there is something wrong in my building 
>>> step.
>>> Can anyone help me? Thanks.
>>> 
>>> 
>>> On Wed, Dec 16, 2009 at 12:49 AM, Brian Bockelman <[email protected]> 
>>> wrote:
>>>> Hey,
>>>> 
>>>> One thing you can do is call the fuse_dfs executable with the "-d" option. 
>>>>  This will keep the FUSE-DFS process in the foreground of the terminal, 
>>>> and you will see any stack traces that occur within the Hadoop portion.  
>>>> Very useful for debugging.
>>>> 
>>>> Brian
>>>> 
>>>> On Dec 15, 2009, at 12:21 AM, Weiming Lu wrote:
>>>> 
>>>>> Thanks very much, I have builded fuse-dfs successfully with many
>>>>> tries. But there are still some problems. We can list files in hadoop
>>>>> by "./hadoop fs -ls ". But after mount, no file shown in /mnt/dfs, and
>>>>> there is also no message in /var/log/messages.
>>>>> does anybody encounter this ?
>>>>> 
>>>>> The hadoop we used is hadoop 0.18.2, and our platform is ubuntu 8.0.4, 
>>>>> amd64.
>>>>> 
>>>>> The steps we builded are:
>>>>> 1. modified src/c++/libhdfs/Makefile by
>>>>> adding OS_ARCH=amd64, and JAVA_HOME
>>>>> removing -32m in CPPFLAGS and LDFLAGS
>>>>> 2.modified src/c++/utils/configure and src/c++/pipes/configure by
>>>>> adding OS_ARCH=amd64
>>>>> making it executable by "chmod 755"
>>>>> 3.ln -s /usr/lib/jvm/java-6-sun/jre/lib/amd64/server/libjvm.so 
>>>>> /usr/local/lib
>>>>> 4.install fuse with version 2.8.1
>>>>> 5.ant compile-libhdfs -Dlibhdfs=1
>>>>> 6.ant compile-contrib -Dcompile.c++=1 -Dfusedfs=1 -Dlibhdfs=1
>>>>> -Dlibhdfs.noperms=1
>>>>> NOW we have fuse_dfs and fuse_dfs_wrapper.sh in
>>>>> $HADOOP_HOME/build/contrib/fuse-dfs
>>>>> 
>>>>> 7. add the following content in fuse_dfs_wrapper.sh
>>>>> #!/bin/bash
>>>>> export JAVA_HOME=/usr/lib/jvm/java-6-sun
>>>>> export OS_NAME=linux
>>>>> export OS_ARCH=amd64
>>>>> export HADOOP_HOME=/home/lwm/work/hadoop
>>>>> 
>>>>> 8. ln -s /home/lwm/work/hadoop/build/libhdfs/libhdfs.so
>>>>> /usr/local/lib/libhdfs.so
>>>>> 
>>>>> 9. modified /etc/ld.so.conf by adding /usr/local/lib
>>>>> and then ldconfig
>>>>> 10. sudo mkdir /mnt/dfs
>>>>> 11. ./fuse_dfs_wrapper.sh dfs://10.15.62.4:54310 /mnt/dfs
>>>>> we got:
>>>>> port=54310,server=10.15.62.4
>>>>> fuse-dfs didn't recognize /mnt/dfs,-2
>>>>> fuse-dfs ignoring option -d
>>>>> fuse-dfs ignoring option -o
>>>>> fuse-dfs didn't recognize allow_other,-2
>>>>> fuse: invalid argument `allow_other'
>>>>> 
>>>>> 
>>>>> 2009-12-15, "Hazem Mahmoud" <[email protected]> wrote:
>>>>>> Here are some notes I took when installing fuse here on our system. This 
>>>>>> was
>>>>>> for a hadoop 19.1 installation.
>>>>>> 
>>>>>> 
>>>>>>   Installing Fuse/Hadoop:
>>>>>> 
>>>>>> 2.     mkdir /hdfs/client01
>>>>>> 
>>>>>> 4.     Install Sun JDK 1.6 (must be Sun)
>>>>>> 
>>>>>> a.     RPM: jdk-6u14-ea-linux-amd64.rpm
>>>>>> 
>>>>>> b.     This DID NOT WORK:
>>>>>> java version "1.6.0"
>>>>>> OpenJDK  Runtime Environment (build 1.6.0-b09)
>>>>>> OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
>>>>>> 
>>>>>> c.      Must be this:
>>>>>> java version "1.6.0_14-ea"
>>>>>> Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b04)
>>>>>> Java HotSpot(TM) 64-Bit Server VM (build 14.0-b13, mixed mode)
>>>>>> 
>>>>>> 5.     wget
>>>>>> http://newman.ultralight.org/repos/hadoop/4/x86_64/hadoop-0.19.1-7.el4.x86_64.rpm
>>>>>> 
>>>>>> 6.     wget
>>>>>> http://newman.ultralight.org/repos/hadoop/4/x86_64/fuse-libs-2.7.4-8_10.el4.x86_64.rpm
>>>>>> 
>>>>>> 7.     wget
>>>>>> http://dag.wieers.com/rpm/packages/fuse/fuse-2.7.3-1.el5.rf.x86_64.rpm
>>>>>> OR
>>>>>> wget
>>>>>> http://newman.ultralight.org/repos/hadoop/4/x86_64/fuse-2.7.4-8_10.el4.x86_64.rpm
>>>>>> 
>>>>>> 8.     wget
>>>>>> http://newman.ultralight.org/repos/hadoop/4/x86_64/hadoop-fuse-0.19.1-7.el4.x86_64.rpm
>>>>>> 
>>>>>> 9.     rpm –ivh hadoop-0.19.1-7.el4.x86_64.rpm
>>>>>> 
>>>>>> 10. rpm –ivh fuse-2.7.3-1.el5.rf.x86_64.rpm
>>>>>> 
>>>>>> 11. rpm –ivh hadoop-fuse-0.19.1-7.el4.x86_64.rpm
>>>>>> 
>>>>>> 12. rpm –ivh fuse-libs-2.7.4-8_10.el4.x86_64.rpm
>>>>>> 
>>>>>> 13. yum install hadoop
>>>>>> 
>>>>>> 14. yum install hadoop-fuse fuse-libs
>>>>>> 
>>>>>> 15. In /etc/fstab:
>>>>>> 
>>>>>> a.     hdfs# /hdfs/client01 fuse
>>>>>> server=<server_hostname>,port=9000,rdbuffer=1048576,allow_other,big_writes
>>>>>>  0
>>>>>> 0
>>>>>> 
>>>>>> 
>>>>>> 16. Then execute command:
>>>>>> 
>>>>>> a.     mount /hdfs/client01
>>>>>> 
>>>>>> b.      ls /hdfs/client01
>>>>>> 
>>>>>> 17. References:
>>>>>> 
>>>>>> a.     https://twiki.grid.iu.edu/bin/view/Storage/HadoopInstallation
>>>>>> 
>>>>>> b.     http://wiki.apache.org/hadoop/MountableHDFS
>>>>>> 
>>>>>> 18. Error:
>>>>>> 
>>>>>> a.     After performing a “yum upgrade” on the entire system it broke the
>>>>>> fuse installation:
>>>>>> 
>>>>>>                                              i.     [r...@host1 ~]#
>>>>>> modprobe fuse
>>>>>> FATAL: Module fuse not found.
>>>>>> 
>>>>>>                                             ii.     [r...@host1 ~]# mount
>>>>>> /hdfs/client01
>>>>>> port=11091,server=#A#####
>>>>>> fuse-dfs didn't recognize /hdfs/client01,-2
>>>>>> fuse-dfs ignoring option allow_other
>>>>>> fuse: device not found, try 'modprobe fuse' first
>>>>>> 
>>>>>> b.     Solution: Reinstall newer RPM’s:
>>>>>> 
>>>>>>                                              i.
>>>>>> fuse-2.7.4-8_10.el5.x86_64.rpm
>>>>>> 
>>>>>>                                             ii.
>>>>>> fuse-kmdl-2.6.18-128.1.10.el5-2.7.4-8_10.el5.x86_64.rpm
>>>>>> 
>>>>>>                                           iii.
>>>>>> fuse-libs-2.7.4-8_10.el5.x86_64.rpm
>>>>>> 
>>>>>>                                           iv.
>>>>>> hadoop-0.19.1-7.el5.x86_64.rpm
>>>>>> 
>>>>>>                                             v.
>>>>>> hadoop-fuse-0.19.1-8.el5.x86_64.rpm
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 2009/12/13 lwm <[email protected]>
>>>>>> 
>>>>>>> Hi all
>>>>>>> I have installed hadoop with version 0.18.2, and I want to use fuse in
>>>>>>> hadoop. Following the src/contrib/fuse-dfs/README, I executed "ant
>>>>>>> compile-contrib -Dlibhdfs=1 -Dfusedfs=1 ", an error occured. I can't 
>>>>>>> fix it.
>>>>>>> Can anyone help me? Or is there a good install guide for me?
>>>>>>> thanks.
>>>>>>> When I executed "ant compile-contrib -Dcompile.c++=1 -Dfusedfs=1
>>>>>>> -Dlibhdfs.noperms=1", it was builded successfully.
>>>>>>> 
>>>>>>> compile:
>>>>>>>    [echo] contrib: fuse-dfs
>>>>>>>    [exec] automake: Makefile.am: required file `./NEWS' not found
>>>>>>>    [exec] automake: Makefile.am: required file `./AUTHORS' not found
>>>>>>>    [exec] automake: Makefile.am: required file `./ChangeLog' not found
>>>>>>>    [exec] src/Makefile.am:19: invalid unused variable name: `AM_LDFLAGS'
>>>>>>>    [exec] configure: error: cannot run /bin/bash ./config.sub
>>>>>>> BUILD FAILED
>>>>>>> /home/wm/work/hadoop/build.xml:410: The following error occurred while
>>>>>>> executing this line:
>>>>>>> /home/wm/work/hadoop/src/contrib/build.xml:30: The following error 
>>>>>>> occurred
>>>>>>> while executing this line:
>>>>>>> /home/wm/work/hadoop/src/contrib/fuse-dfs/build.xml:54: exec returned: 1
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>> 
>>>> 
>>> 
>> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to