[Gluster-users] Can't mount

Mārtiņš Jakubovičs martins at vertigs.lv
Sat Nov 22 17:56:32 UTC 2014


Hello,

Here is output:

[root at gclient ~]# gdb /usr/sbin/glusterfs
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-51.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/glusterfsd...Reading symbols from 
/usr/lib/debug/usr/sbin/glusterfsd.debug...done.
done.
(gdb) b _gf_string2double
Function "_gf_string2double" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (_gf_string2double) pending.
(gdb) r --volfile-server=test1 --volfile-id=/test /mnt
Starting program: /usr/sbin/glusterfs --volfile-server=test1 
--volfile-id=/test /mnt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Breakpoint 1, gf_string2double (str=str at entry=0x7fcac6f22dbc "1.0", 
n=n at entry=0x7fcad1894870) at common-utils.c:1078
1078            return _gf_string2double (str, n);
(gdb) n
1079    }
(gdb)
init (this_xl=0x7fcad1890d10) at fuse-bridge.c:5278
5278            int                fsname_allocated = 0;
(gdb)
5273            char              *fsname = NULL;
(gdb)
5565            if (xl_name_allocated)
(gdb)
5567            if (fsname_allocated)
(gdb)
5569            if (priv) {
(gdb)
5570                    GF_FREE (priv->mount_point);
(gdb)
5571                    if (priv->fd != -1)
(gdb)
5573                    if (priv->fuse_dump_fd != -1)
(gdb)
5574                            close (priv->fuse_dump_fd);
(gdb)
5575                    GF_FREE (priv);
(gdb)
5577            GF_FREE (mnt_args);
(gdb)
5578            return -1;
(gdb)
5577            GF_FREE (mnt_args);
(gdb)
5579    }
(gdb)
__xlator_init (xl=0x7fcad1890d10) at xlator.c:398
398            THIS = old_THIS;
(gdb)
xlator_init (xl=xl at entry=0x7fcad1890d10) at xlator.c:421
421            if (ret) {
(gdb)
419            ret = __xlator_init (xl);
(gdb)
421            if (ret) {
(gdb)
422                    gf_log (xl->name, GF_LOG_ERROR,
(gdb)
434    }
(gdb)
create_fuse_mount (ctx=ctx at entry=0x7fcad1866010) at glusterfsd.c:570
570            if (ret) {
(gdb)
571                    gf_msg_debug ("glusterfsd", 0,
(gdb)
573                    goto err;
(gdb)
582                    xlator_destroy (master);
(gdb)
586    }
(gdb)
main (argc=4, argv=0x7ffff21a81d8) at glusterfsd.c:2026
2026            if (ret)
(gdb)
2025            ret = create_fuse_mount (ctx);
(gdb)
2026            if (ret)
(gdb)
2049    }
(gdb)
__libc_start_main (main=0x7fcad00c0ab0 <main>, argc=4, 
ubp_av=0x7ffff21a81d8, init=<optimized out>, fini=<optimized out>, 
rtld_fini=<optimized out>, stack_end=0x7ffff21a81c8) at libc-start.c:308
308      exit (result);
(gdb)
[Inferior 1 (process 10176) exited with code 01]
(gdb)
The program is not being run.


On 2014.11.22. 19:18, Pranith Kumar Karampuri wrote:
>
> On 11/22/2014 10:39 PM, Mārtiņš Jakubovičs wrote:
>> Hmm, I have same output:
>>
>> [root at gclient ~]# ./a.out
>> conversion of 1.0 gave ret: 0, value: 1.000000
>>
>> And If I try to mount in servers, I got same problem ...
>> From Ubuntu machine I can't mount too, can't say is this client 
>> problem or server's ...
> The issue is happening from gluster alright, just don't understand why 
> :-(
>
> here is the way to debug it in gdb:
>
> 22:43:59 :) ⚡ gdb /usr/local/sbin/glusterfs
> GNU gdb (GDB) Fedora 7.6.50.20130731-19.fc20
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later 
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show 
> copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-redhat-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> ..
> Reading symbols from /usr/local/sbin/glusterfsd...done.
> (gdb) b _gf_string2double
> Function "_gf_string2double" not defined.
> Make breakpoint pending on future shared library load? (y or [n]) y
> Breakpoint 1 (_gf_string2double) pending.
> (gdb) r --volfile-server=test1 --volfile-id=/test /mnt
> Starting program: /usr/local/sbin/glusterfs --volfile-server=test1 
> --volfile-id=/test /mnt
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
>
> Breakpoint 1, _gf_string2double (str=0x7ffff04f6f58 "1.0", n=0x639b60) 
> at common-utils.c:940
> 940            double value     = 0.0;
> Missing separate debuginfos, use: debuginfo-install 
> glibc-2.18-12.fc20.x86_64 openssl-libs-1.0.1e-37.fc20.1.x86_64 
> zlib-1.2.8-3.fc20.x86_64
> (gdb) n <<--- press 'n' and then enter
> 941            char   *tail     = NULL;
> (gdb) <<--- just enter here, it repeats the previous 'n' command here 
> as well.
> 942            int    old_errno = 0;
> (gdb)
> 944            if (str == NULL || n == NULL) {
> (gdb)
> 950            old_errno = errno;
> (gdb)
> 951            errno = 0;
> (gdb)
> 952            value = strtod (str, &tail);
> (gdb)
> 953            if (str == tail)
> (gdb)
> 956            if (errno == ERANGE || errno == EINVAL)
> (gdb)
> 959            if (errno == 0)
> (gdb)
> 960                    errno = old_errno;
> (gdb) p value
> $1 = 1
> (gdb) n
> 962            if (tail[0] != '\0')
> (gdb)
> 965            *n = value;
> (gdb)
> 967            return 0;
> (gdb)
>
> I am extremely sorry to ask you to do this, but I don't know how else 
> I can gather information :-(
>
> Pranith
>>
>> On 2014.11.22. 19:03, Pranith Kumar Karampuri wrote:
>>>
>>> On 11/22/2014 09:36 PM, Mārtiņš Jakubovičs wrote:
>>>> And yes, as you mentioned, warning appears, but as this is test 
>>>> lab, I ignored it ...
>>>>
>>>> On 2014.11.22. 18:04, Mārtiņš Jakubovičs wrote:
>>>>> Hello,
>>>>>
>>>>> Thanks for so fast response! Answers below.
>>>>>
>>>>> On 2014.11.22. 17:55, Pranith Kumar Karampuri wrote:
>>>>>>
>>>>>> On 11/22/2014 09:22 PM, Mārtiņš Jakubovičs wrote:
>>>>>>> Hello all!
>>>>>>>
>>>>>>> I am new in gluster world, and want to test this "beast" 
>>>>>>> technology.
>>>>>>> I created 4 CentOS 7 demo machines with two 50 gb disks in each 
>>>>>>> machine for bricks. I installed gluster by this simple "howto": 
>>>>>>> http://www.server-world.info/en/note?os=CentOS_7&p=glusterfs
>>>>>>>
>>>>>>> All goes well, I created volume with "replica 2" options, and 
>>>>>>> use all 8 bricks. Volume create successfully and I started it:
>>>>>>>
>>>>>>> [root at gluster1 ~]# gluster volume start test
>>>>>>> volume start: test: success
>>>>>>> [root at gluster1 ~]# gluster volume info
>>>>>>>
>>>>>>> Volume Name: test
>>>>>>> Type: Distributed-Replicate
>>>>>>> Volume ID: 226592b1-089f-4727-a009-19838078b7e7
>>>>>>> Status: Started
>>>>>>> Number of Bricks: 4 x 2 = 8
>>>>>>> Transport-type: tcp
>>>>>>> Bricks:
>>>>>>> Brick1: gluster1:/brick1/test
>>>>>>> Brick2: gluster1:/brick2/test
>>>>>>> Brick3: gluster2:/brick1/test
>>>>>>> Brick4: gluster2:/brick2/test
>>>>>>> Brick5: gluster3:/brick1/test
>>>>>>> Brick6: gluster3:/brick2/test
>>>>>>> Brick7: gluster4:/brick1/test
>>>>>>> Brick8: gluster4:/brick2/test
>>>>>> Could you let us know which version of gluster are you using? 
>>>>>> gluster should have thrown a warning when two bricks are chosen 
>>>>>> from same machine for replica pairs.
>>>>>
>>>>> I am running gluster 3.6.1
>>>>> [root at gluster1 ~]# glusterfsd --version
>>>>> glusterfs 3.6.1 built on Nov  7 2014 15:16:38
>>>>>
>>>>>>>
>>>>>>> But, when I try to mount volume in CentOS 7 machine I got error:
>>>>>>>
>>>>>>> [root at gclient ~]# mount -t glusterfs gluster1:/test /mnt
>>>>>>> WARNING: getfattr not found, certain checks will be skipped..
>>>>>>>
>>>>>>> Error in log file:
>>>>>>> [xlator.c:425:xlator_init] 0-fuse: Initialization of volume 
>>>>>>> 'fuse' failed, review your volfile again
>>>>>> Could you please send the complete log.
>>>>>
>>>>> Complete record when I try to mount from /var/log/glusterfs/mnt.log:
>>>>>
>>>>> [2014-11-22 16:03:51.728816] I [MSGID: 100030] 
>>>>> [glusterfsd.c:2018:main] 0-/usr/sbin/glusterfs: Started running 
>>>>> /usr/sbin/glusterfs version 3.6.1 (args: /usr/sbin/glusterfs 
>>>>> --volfile-server=gluster1 --volfile-id=/test /mnt)
>>>>> [2014-11-22 16:03:51.729565] I 
>>>>> [options.c:1163:xlator_option_init_double] 0-fuse: option 
>>>>> attribute-timeout convertion failed value 1.0
>>> attribute-timeout seems to be the problem as per the log above.
>>>
>>> I tried testing this and things seem to be fine. May be I should 
>>> know the behavior of the program on your system.
>>>
>>> Could you compile the following c program and tell me the output:
>>>
>>> ==========================================
>>> #include <stdio.h>
>>> #include <stdlib.h>
>>> #include <errno.h>
>>> #include <string.h>
>>>
>>> static int
>>> _gf_string2double (const char *str, double *n)
>>> {
>>>         double value     = 0.0;
>>>         char   *tail     = NULL;
>>>         int    old_errno = 0;
>>>
>>>         if (str == NULL || n == NULL) {
>>>                 errno = EINVAL;
>>>                 return -1;
>>>         }
>>>
>>>         old_errno = errno;
>>>         errno = 0;
>>>         value = strtod (str, &tail);
>>>         if (str == tail)
>>>                 errno = EINVAL;
>>>
>>>         if (errno == ERANGE || errno == EINVAL)
>>>                 return -1;
>>>
>>>         if (errno == 0)
>>>                 errno = old_errno;
>>>
>>>         if (tail[0] != '\0')
>>>                 return -1;
>>>
>>>         *n = value;
>>>
>>>         return 0;
>>> }
>>>
>>> int
>>> main (int argc, char **argv)
>>> {
>>>         double value = 0.0;
>>>         int ret = 0;
>>>
>>>         ret = _gf_string2double ("1.0", &value);
>>>         if (ret < 0)
>>>                 printf ("conversion of 1.0 failed with %s", 
>>> strerror(errno));
>>>         else
>>>                 printf ("conversion of 1.0 gave ret: %d, value: 
>>> %lf", ret, value);
>>> }
>>> ==========================================
>>>
>>> Save this into 'file.c'
>>> # gcc file.c
>>> # ./a.out
>>>
>>> It should print the following output:
>>> conversion of 1.0 gave ret: 0, value: 1.000000.
>>>
>>> Could you let me know what is the output on your machine?
>>>
>>> Pranith
>>>>> [2014-11-22 16:03:51.729593] E [xlator.c:425:xlator_init] 0-fuse: 
>>>>> Initialization of volume 'fuse' failed, review your volfile again
>>>>>
>>>>>>
>>>>>> Pranith
>>>>>>>
>>>>>>> Would be grateful for any help!
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Martins
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Gluster-users mailing list
>>>>>>> Gluster-users at gluster.org
>>>>>>> http://supercolony.gluster.org/mailman/listinfo/gluster-users
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Gluster-users mailing list
>>>> Gluster-users at gluster.org
>>>> http://supercolony.gluster.org/mailman/listinfo/gluster-users
>>>
>>
>



More information about the Gluster-users mailing list