Bug 225485 - Intermittent segvs when prelink enabled
Summary: Intermittent segvs when prelink enabled
Keywords:
Status: CLOSED DUPLICATE of bug 246623
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 6
Hardware: i386
OS: Linux
medium
high
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-30 21:08 UTC by Ed Swierk
Modified: 2008-08-02 23:40 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-10-09 15:31:39 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
/bin/ping and libraries before prelink -ua (747.58 KB, application/x-bzip2)
2007-01-30 21:08 UTC, Ed Swierk
no flags Details
/bin/ping and libraries after prelink -ua (744.96 KB, application/x-bzip2)
2007-01-30 21:09 UTC, Ed Swierk
no flags Details
/bin/ping coredump (3.92 KB, application/x-bzip2)
2007-01-30 21:45 UTC, Ed Swierk
no flags Details
/bin/su coredump (3.88 KB, application/x-bzip2)
2007-01-30 21:46 UTC, Ed Swierk
no flags Details

Description Ed Swierk 2007-01-30 21:08:06 UTC
On a few of our FC6 machines, various programs intermittently crash with
SIGSEGV.  The two easiest test cases are:

  while ping -c 1 localhost; do :; done >/dev/null

and

  while sudo su -c true; do :; done >/dev/null

Each fails after a few seconds to a minute.

All the machines in question are running 32-bit i386 FC6, and have
prelink-0.3.9-2, glibc-2.5-10.fc6 installed.  Some were upgraded from FC4, while
others were installed with FC6 from scratch.  Some are single-core Celerons and
others are dual-core Pentium Ds.  There is no apparent correlation between the
machine's configuration and whether the crashing occurs on the machine.

On one machine, I tarred up /bin/ping and its dependent shared libraries, then
disabled prelink and ran "prelink -ua".  After this, the above tests do not crash.

Comment 1 Ed Swierk 2007-01-30 21:08:06 UTC
Created attachment 146963 [details]
/bin/ping and libraries before prelink -ua

Comment 2 Ed Swierk 2007-01-30 21:09:18 UTC
Created attachment 146964 [details]
/bin/ping and libraries after prelink -ua

Comment 3 Ed Swierk 2007-01-30 21:10:36 UTC
This issue seems related to (if not a duplicate of) bug 110665.

Comment 4 Ed Swierk 2007-01-30 21:15:41 UTC
Actually, the crash occurs on all our FC6 machines.  The ones I thought were
okay are actually still running FC4.


Comment 5 Jakub Jelinek 2007-01-30 21:23:34 UTC
ping is a PIE, my guess this is a dup of #217614.
What exact glibc do you have installed?  *.i686.rpm or *.i386.rpm?
Can you get a core dump?  ulimit -c unlimited; while ping -c 1 localhost; do :;
done >/dev/null
?  You'd need to run it as root, otherwise setuid ping won't create a core dump.

Comment 6 Ed Swierk 2007-01-30 21:45:34 UTC
Created attachment 146967 [details]
/bin/ping coredump

Comment 7 Ed Swierk 2007-01-30 21:46:13 UTC
Created attachment 146968 [details]
/bin/su coredump

Comment 8 Ed Swierk 2007-01-30 21:49:25 UTC
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' glibc iputils
coreutils prelink
glibc-2.5-10.fc6.i686
iputils-20020927-41.fc6.i386
coreutils-5.97-12.3.fc6.i386
prelink-0.3.9-2.i386


Comment 9 Jeff Johnson 2007-04-23 15:49:12 UTC
Yes, likely dupe of #217614.

I've just managed to figure a "fix" by unprelinking the libraries
that /bin/ping is linked too, cureing a previously observed segfault:

[root@skyline ~]# sh t
completed: 1867
[root@skyline ~]# prelink --undo /lib/libresolv.so.2
[root@skyline ~]# sh t
completed: 97
[root@skyline ~]# sh t
completed: 1746
[root@skyline ~]# prelink --undo /lib/tls/libc.so.6
[root@skyline ~]# sh t
completed: 11705
[root@skyline ~]# prelink --undo /lib/ld-linux.so.2
[root@skyline ~]# sh t
<... still running == likely fixed ...>

Here's the dinky t script:

#!/bin/sh

i=0
while `/bin/ping -c1 -w1 127.0.0.1 >& /dev/null`
do
    i="`expr $i + 1`"
done

echo "completed: $i"

Comment 10 Jeff Johnson 2007-04-23 15:52:25 UTC
Note that there was another element in #217614, whether glibc.i386 or glibc.i686 is installed.

My comment #9 has these (FC6 kernel, CentOS4.4 glibc&ping) packages installed:

[root@skyline ~]# rpm -q glibc kernel iputils
glibc-2.3.4-2.25.i686
kernel-2.6.18-1.2849prerel3.0.0_60.44.0.i686
iputils-20020927-18.EL4.3.i386




Comment 11 Jeff Johnson 2007-04-23 16:34:50 UTC
This appears the minimum necessary change to "cure" /bin/ping segfaults:

root@gt40 ~]# sh t
completed: 1076
[root@gt40 ~]# prelink --undo /lib/ld-linux.so.2
[root@gt40 ~]# sh t

< --- running almost an hour --- >

I can reproduce this problem on demand if that helps.

Comment 12 Jakub Jelinek 2007-10-09 15:31:39 UTC

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


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