+++ This bug was initially created as a clone of Bug #434995 +++ Description of problem: On a GDB testcase was found i386 debugger running on x86_64 kernel accidentally causes ERESTARTSYS to be returned in errno in the process being debugged. It is not reproducible on an i386 debugger on an i386 kernel. It is not reproducible on an x86_64 debugger on an x86_64 kernel. Version-Release number of selected component (if applicable): kernel-smp-2.6.9-55.EL.x86_64 How reproducible: Always, reliably. Steps to Reproduce: 1. wget http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/tests/ptrace-tests/tests/erestartsys.c?cvsroot=systemtap 2. gcc -o erestartsys erestartsys.c -Wall -ggdb2 -D_GNU_SOURCE -m32 -lutil;./erestartsys;echo $? Actual results: 1 Expected results: 0 Additional info: Correct (0): /* kernel-2.6.23.15-137.fc8.x86_64 -m64. */ /* kernel.org 2.6.22-rc4-git7 x86_64 -m64. */ /* kernel-2.6.23.15-137.fc8.i686 (-m32). */ Broken (1): /* kernel.org 2.6.22-rc4-git7 x86_64 on -m32. */ /* kernel-2.6.23.15-137.fc8.x86_64 -m32. */ Unsupported restarting (77): /* kernel.org 2.4.33 i686. */ /* kernel-2.6.18-53.el5.s390x -m64. */ The GDB case: cd /home/jkratoch/redhat/fedora/gdb/devel-m32/gdb-6.7.1/build-i386-redhat-linux-gnu/gdb/testsuite $ file ../gdb gdb.base/interrupt ../gdb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped gdb.base/interrupt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped $ ../gdb gdb.base/interrupt GNU gdb Red Hat Linux (6.7.1-15.fc8rh) Copyright (C) 2007 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 "i386-redhat-linux-gnu"... Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /home/jkratoch/redhat/fedora/gdb/devel-m32/gdb-6.7.1/build-i386-redhat-linux-gnu/gdb/testsuite/gdb.base/interrupt Missing separate debuginfo for /lib/ld-linux.so.2 Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/ac/2eeb206486bb7315d6ac4cd64de0cb50838ff6.debug Missing separate debuginfo for /lib/libm.so.6 Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/92/8ab51a53627c59877a85dd9afecc1619ca866c.debug Missing separate debuginfo for /lib/libc.so.6 Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/ba/4ea1118691c826426e9410cafb798f25cefad5.debug talk to me baby <--- Put CTRL-C from the console here. Program received signal SIGINT, Interrupt. 0xffffe410 in __kernel_vsyscall () (gdb) p func1 () $1 = 4 (gdb) cont Continuing. Unknown error 512 ^^^ The message `Unknown error 512' should have never been seen.
Upstream fix from Roland: http://www.ussg.iu.edu/hypermail/linux/kernel/0802.3/2516.html
Backported patch posted to RHKL: http://post-office.corp.redhat.com/archives/rhkernel-list/2008-May/msg00087.html
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
Committed in 71.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/
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-2008-0665.html