Bug 788962 - nfs: cthon fails for holey files
Summary: nfs: cthon fails for holey files
Keywords:
Status: CLOSED DUPLICATE of bug 801364
Alias: None
Product: GlusterFS
Classification: Community
Component: io-cache
Version: pre-release
Hardware: Unspecified
OS: Unspecified
urgent
high
Target Milestone: ---
Assignee: Raghavendra G
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-02-09 12:13 UTC by Saurabh
Modified: 2016-01-19 06:09 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-03-14 04:45:56 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Saurabh 2012-02-09 12:13:50 UTC
Description of problem:
cthon fails for holey files, when executed over gnfs for kernel nfs it passes.

The behaviour is seen across platforms RHEL, ubuntu, centOS, fedorra.

Version-Release number of selected component (if applicable):
3.3.0qa21

How reproducible:
always

Steps to Reproduce:
1.create a volume
2.execute cthon special tests
3.
  
Actual results:
the holey file test fails

Expected results:
it should pass

Additional info:

strace information for executing over gnfs,

[root@RHSSA1 RHSSA1.test]# strace ./holey
execve("./holey", ["./holey"], [/* 24 vars */]) = 0
brk(0)                                  = 0x1961000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82ce5b7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=26642, ...}) = 0
mmap(NULL, 26642, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f82ce5b0000
close(3)                                = 0
open("/lib64/libnsl.so.1", O_RDONLY)    = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360?\340\v4\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=116136, ...}) = 0
mmap(0x340be00000, 2198192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x340be00000
mprotect(0x340be16000, 2093056, PROT_NONE) = 0
mmap(0x340c015000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x340c015000
mmap(0x340c017000, 6832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x340c017000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\341\n4\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1904456, ...}) = 0
mmap(0x340ae00000, 3729576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x340ae00000
mprotect(0x340af86000, 2093056, PROT_NONE) = 0
mmap(0x340b185000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x185000) = 0x340b185000
mmap(0x340b18a000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x340b18a000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82ce5af000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82ce5ae000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82ce5ad000
arch_prctl(ARCH_SET_FS, 0x7f82ce5ae700) = 0
mprotect(0x340b185000, 16384, PROT_READ) = 0
mprotect(0x340c015000, 4096, PROT_READ) = 0
mprotect(0x340ac1f000, 4096, PROT_READ) = 0
munmap(0x7f82ce5b0000, 26642)           = 0
umask(0)                                = 022
open("holeyfile", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
close(3)                                = 0
open("holeyfile", O_RDWR)               = 3
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
lseek(3, 9012, SEEK_CUR)                = 13333
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
lseek(3, 9012, SEEK_CUR)                = 26666
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
lseek(3, 9012, SEEK_CUR)                = 39999
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
lseek(3, 9012, SEEK_CUR)                = 53332
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
lseek(3, 9012, SEEK_CUR)                = 66665
write(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 3335) = 3335
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\0\0\0\0\1\0\0\0\2\0\0\0\3\0\0\0\4\0\0\0\5\0\0\0\6\0\0\0\7\0\0\0"..., 4321) = 4321
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 3871
read(3, 0x7fffa26aac90, 5141)           = -1 EIO (Input/output error)
write(2, "read (hole) offset 8192, sz = 56"..., 74read (hole) offset 8192, sz = 56667, bytes = 5141 (ret -1), holesz = 9012
) = 74
write(2, "read: Input/output error\n", 25read: Input/output error
) = 25
exit_group(1)                           = ?

Comment 1 Saurabh 2012-02-22 09:22:36 UTC
by keeping the performance translators, io-cache and quick-read are kept off, the holey files test passes.

[root@RHSSA1 ~]# /root/330/inst/sbin/gluster volume set dist-rep2 performance.quick-read on
Set volume successful
[root@RHSSA1 ~]# /root/330/inst/sbin/gluster volume set dist-rep2 performance.quick-read off
Set volume successful
[root@RHSSA1 ~]# /root/330/inst/sbin/gluster volume set dist-rep2 performance.io-cache on
Set volume successful
[root@RHSSA1 ~]# /root/330/inst/sbin/gluster volume set dist-rep2 performance.io-cache off

hence re-assigning.

Comment 2 Amar Tumballi 2012-03-12 09:22:55 UTC
Need to test and fix it.

Comment 3 Raghavendra G 2012-03-14 04:45:56 UTC

*** This bug has been marked as a duplicate of bug 801364 ***


Note You need to log in before you can comment on or make changes to this bug.