Bug 225485 - Intermittent segvs when prelink enabled
Intermittent segvs when prelink enabled
Status: CLOSED DUPLICATE of bug 246623
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
i386 Linux
medium Severity high
: ---
: ---
Assigned To: Jakub Jelinek
Depends On:
  Show dependency treegraph
Reported: 2007-01-30 16:08 EST by Ed Swierk
Modified: 2008-08-02 19:40 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2007-10-09 11:31:39 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

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

  None (edit)
Description Ed Swierk 2007-01-30 16:08:06 EST
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


  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 16:08:06 EST
Created attachment 146963 [details]
/bin/ping and libraries before prelink -ua
Comment 2 Ed Swierk 2007-01-30 16:09:18 EST
Created attachment 146964 [details]
/bin/ping and libraries after prelink -ua
Comment 3 Ed Swierk 2007-01-30 16:10:36 EST
This issue seems related to (if not a duplicate of) bug 110665.
Comment 4 Ed Swierk 2007-01-30 16:15:41 EST
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 16:23:34 EST
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 16:45:34 EST
Created attachment 146967 [details]
/bin/ping coredump
Comment 7 Ed Swierk 2007-01-30 16:46:13 EST
Created attachment 146968 [details]
/bin/su coredump
Comment 8 Ed Swierk 2007-01-30 16:49:25 EST
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' glibc iputils
coreutils prelink
Comment 9 Jeff Johnson 2007-04-23 11:49:12 EDT
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:


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

echo "completed: $i"
Comment 10 Jeff Johnson 2007-04-23 11:52:25 EDT
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

Comment 11 Jeff Johnson 2007-04-23 12:34:50 EDT
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 11:31:39 EDT

*** 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.