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) = ?
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.
Need to test and fix it.
*** This bug has been marked as a duplicate of bug 801364 ***