This bug has been copied from bug #559410 and has been proposed to be backported to 5.2 z-stream (EUS).
in 2.6.18-92.1.37.el5
Please note that you'll need the followup patch for the Xen kernel as well. That was just posted, and should be integrated into the 5.5 kernel soon. Chris Lalancette
reproduce on kernel 2.6.18-92.1.35.el5xen: # uname -a Linux dell-pe1950-01.rhts.eng.bos.redhat.com 2.6.18-92.1.35.el5xen #1 SMP Thu Jan 14 13:24:37 EST 2010 x86_64 x86_64 x86_64 GNU/Linux # strace ./fadvise_test32 execve("./fadvise_test32", ["./fadvise_test32"], [/* 23 vars */]) = 0 [ Process PID=6158 runs in 32 bit mode. ] brk(0) = 0x808b000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=81009, ...}) = 0 mmap2(NULL, 81009, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7fb2000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000o\267\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1602128, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fb1000 mmap2(0xb61000, 1320356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb61000 mmap2(0xc9e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xc9e000 mmap2(0xca1000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xca1000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fb0000 set_thread_area(0xffdc5404) = 0 mprotect(0xc9e000, 8192, PROT_READ) = 0 mprotect(0xb5d000, 4096, PROT_READ) = 0 munmap(0xf7fb2000, 81009) = 0 open("/bin/cat", O_RDONLY) = 3 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fc5000 write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 0 ) = 44 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 1 ) = 44 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 2 ) = 44 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 3 ) = 44 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 4 ) = 44 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = -1 EINVAL (Invalid argument) write(1, "ret: 22, fd: 3, offset: 0,len: 8"..., 44ret: 22, fd: 3, offset: 0,len: 8, advise: 5 ) = 44 close(3) = 0 exit_group(0) = ? verify on kernel 2.6.18-92.1.38.el5xen: # uname -a Linux dell-pe1950-01.rhts.eng.bos.redhat.com 2.6.18-92.1.38.el5xen #1 SMP Mon Mar 8 12:09:26 EST 2010 x86_64 x86_64 x86_64 GNU/Linux # strace ./fadvise_test32 execve("./fadvise_test32", ["./fadvise_test32"], [/* 23 vars */]) = 0 [ Process PID=6265 runs in 32 bit mode. ] brk(0) = 0x91f2000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=81009, ...}) = 0 mmap2(NULL, 81009, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7fd7000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000o\267\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1602128, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fd6000 mmap2(0xb61000, 1320356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb61000 mmap2(0xc9e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xc9e000 mmap2(0xca1000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xca1000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fd5000 set_thread_area(0xffce8d24) = 0 mprotect(0xc9e000, 8192, PROT_READ) = 0 mprotect(0xb5d000, 4096, PROT_READ) = 0 munmap(0xf7fd7000, 81009) = 0 open("/bin/cat", O_RDONLY) = 3 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7fea000 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 0 ) = 43 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 1 ) = 43 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 2 ) = 43 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 3 ) = 43 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 4 ) = 43 fadvise64(3, 0, 0, 0x8 /* POSIX_FADV_??? */) = 0 write(1, "ret: 0, fd: 3, offset: 0,len: 8,"..., 43ret: 0, fd: 3, offset: 0,len: 8, advise: 5 ) = 43 close(3) = 0 exit_group(0) = ?
additional patch in 2.6.18-92.1.38.el5
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2010-0148.html