[Gluster-devel] A problem with fstat64 system call on nfs.

Shehjar Tikoo shehjart at gluster.com
Thu Mar 17 17:35:01 UTC 2011


Thanks. The result is as expected. By default gluster nfs returns 64 bit inode numbers to the client. In some kernel versions 32 bit inode numbers are a problem to handle. The work-around is:

o in pre-3.1.3 versions, you'll have to manually add the following line to the nfs section of the volume file.

option nfs.enable-ino32 on

o for version 3.1.3, follow the directions at the following URL:

http://gluster.com/community/documentation/index.php/Gluster_3.1:_NFS_Frequently_Asked_Questions#Application_fails_with_.22Invalid_argument.22_or_.22Value_too_large_for_defined_data_type.22_error.



----- Original Message -----
> From: "Александр Берсенев" <bay at hackerdom.ru>
> To: "Shehjar Tikoo" <shehjart at gluster.com>
> Sent: Thursday, March 17, 2011 7:01:44 PM
> Subject: Re: [Gluster-devel] A problem with fstat64 system call on nfs.
> > 3. please recompile as:
> >
> > gcc -m32 1.c
> >
> > and re-run the test.
> >
> 
> [u1333 at um64 bay]$ ./a.out aaaaaa
> Stat failed: Value too large for defined data type
> 
> > 2. Once the test finishes. Please send me the output of the program
> > above and the output of:
> >
> > $ dmesg |tail
> > $ uname -a
> >
> 
> [u1333 at um64 bay]$ dmesg|tail
> t[32165]: segfault at 000000000ee303a4 rip 0000000000401d55 rsp
> 00007fff1845a810 error 6
> IOR[30985]: segfault at 0000000000000000 rip 00002b20061766e9 rsp
> 00007fff181e8000 error 4
> a.out[24674] trap divide error rip:400dfd rsp:7fff34a2b3b0 error:0
> a.out[26082] trap divide error rip:400dfd rsp:7fff0fb2e940 error:0
> t[28381]: segfault at 0000000000000001 rip 0000000000401dd0 rsp
> 00007ffffe089590 error 4
> a.out[29797]: segfault at 000000000000004a rip 00000000004005e5 rsp
> 00007fffad80c420 error 4
> a.out[29829]: segfault at 0000000000000030 rip 00000000004005e5 rsp
> 00007fffe1c652b0 error 4
> a.out[29841]: segfault at 0000000000000030 rip 00000000004005e5 rsp
> 00007fff68454ae0 error 4
> a.out[29895]: segfault at 0000000000000030 rip 00000000004005e5 rsp
> 00007fff976e4040 error 4
> a.out[4191]: segfault at 0000000039ea82ac rip 0000000039ea82ac rsp
> 00000000ffb9b570 error 14
> 
> But this segfaults are probably from another tests.
> 
> [u1333 at um64 bay]$ uname -a
> Linux um64.imm.uran.ru 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20
> EST 2010 x86_64 x86_64 x86_64 GNU/Linux
> 
> [u1333 at um64 bay]$ /usr/sbin/gluster --version
> glusterfs 3.1.2 built on Jan 14 2011 19:21:09
> Repository revision: v3.1.1-64-gf2a067c
> Copyright (c) 2006-2010 Gluster Inc. <http://www.gluster.com>
> GlusterFS comes with ABSOLUTELY NO WARRANTY.
> You may redistribute copies of GlusterFS under the terms of the GNU
> Affero General Public License.
> 
> [u1333 at um64 bay]$ strace ./a.out aaaaaa 2>&1 | tail
> mprotect(0x15d000, 4096, PROT_READ) = 0
> munmap(0xf7f44000, 96234) = 0
> open("aaaaaa", O_RDONLY) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=2, ...}) = 0
> fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0xfffffffff7f5b000
> write(1, "Stat failed: Value too large for"..., 51Stat failed: Value
> too large for defined data type
> ) = 51
> exit_group(1) = ?
> [ Process PID=25139 runs in 32 bit mode. ]
> 
> It is strange that fstat64 returned 0, but not -1.
> >
> > With this info, I can figure out whats going on. Thanks.
> >
> >
> 
> Thank you.
> 
> ---
> Alexander Bersenev(Russia)




More information about the Gluster-devel mailing list