Bug 121357 - prelink aborts
prelink aborts
Status: CLOSED WORKSFORME
Product: Fedora
Classification: Fedora
Component: prelink (Show other bugs)
2
powerpc Linux
medium Severity medium
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks: fedora-ppc
  Show dependency treegraph
 
Reported: 2004-04-20 14:20 EDT by David Woodhouse
Modified: 2007-11-30 17:10 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2004-11-02 06:47:31 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
strace output (703.20 KB, application/octet-stream)
2004-04-20 14:22 EDT, David Woodhouse
no flags Details
prelink output (53.71 KB, text/plain)
2004-04-20 15:52 EDT, David Woodhouse
no flags Details
Prelink layout list (674.48 KB, text/plain)
2004-04-20 16:10 EDT, David Woodhouse
no flags Details

  None (edit)
Description David Woodhouse 2004-04-20 14:20:54 EDT
Description of problem:
prelink -av dies with SIGABRT

write(1, "/usr/lib/libxffm_tubo.so.0      "..., 79) = 79
write(1, "/usr/lib/libxffmsmb.so.0        "..., 79) = 79
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
getpid()                                = 3542
kill(3542, SIGABRT)                     = 0


Version-Release number of selected component (if applicable):
prelink-0.3.1-2

How reproducible:
100%

Steps to Reproduce:
1. Install 'everything' rawhide 20040414
2. prelink
3. up2date to current.
4. prelink again

Actual results:
Prelink kills itself without explaining why, after printing the load
addresses of all the libraries

write(1, "/usr/lib/libxffm_fstab.so.0     "..., 79) = 79
write(1, "/usr/lib/libxffm_tubo.so.0      "..., 79) = 79
write(1, "/usr/lib/libxffmsmb.so.0        "..., 79) = 79
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
getpid()                                = 3542
kill(3542, SIGABRT)                     = 0
--- SIGABRT (Aborted) @ 0 (0) ---



Additional Info:

qemu is installed and hence i386 libraries in /usr/gnemul. The strace
doesn't seem to show it touching /usr/gnemul though, so I don't think
that's the reason.
Comment 1 David Woodhouse 2004-04-20 14:22:55 EDT
Created attachment 99569 [details]
strace output
Comment 2 David Woodhouse 2004-04-20 15:14:04 EDT
#0  0x100795ec in kill ()
#1  0x10079430 in raise ()
#2  0x1004da80 in abort ()
#3  0x1000e444 in layout_libs () at layout.c:622
#4  0x1000ecb8 in main (argc=2, argv=0x7ffff894) at main.c:394
#5  0x100463fc in generic_start_main ()
#6  0x100461f4 in __libc_start_main ()
Comment 3 David Woodhouse 2004-04-20 15:18:22 EDT
er...
(gdb) up 3
#3  0x1000e444 in layout_libs () at layout.c:622
622                   abort ();
(gdb) p/x ((deps[j - 1]->end + max_page_size - 1) & ~(max_page_size - 1))
$7 = 0xefa0000
(gdb) p/x deps[j]->base
$8 = 0xefa0000

... how did that trigger?
Comment 4 David Woodhouse 2004-04-20 15:52:50 EDT
Created attachment 99572 [details]
prelink output

OK, there really does seem to be an overlap.

/usr/lib/qt-3.3/lib/libqt-mt.so.3			     0e850000-0ef94fa0
/usr/lib/libkmailprivate.so.0				     0e700000-0ead4f44

ABORT! /usr/lib/libkmailprivate.so.0 ends at ead4f44 but
/usr/lib/qt-3.3/lib/libqt-mt.so.3 starts at e850000
Comment 5 Jakub Jelinek 2004-04-20 15:57:05 EDT
Please put a breakpoint on layout_libs, run it till it reaches
that function, then:
p prelink_entry_dump (prelink_filename_htab, "/tmp/prelink.layout.list")
and attach here the file it creates.
THanks.
Comment 6 David Woodhouse 2004-04-20 16:09:23 EDT
It's running now (with --dry-run). Using '-m' seems to have avoided
the problem and that's also running now (for real) 
Comment 7 David Woodhouse 2004-04-20 16:10:47 EDT
Created attachment 99577 [details]
Prelink layout list
Comment 8 Jakub Jelinek 2004-11-02 06:47:31 EST
Can't reproduce with prelink-0.3.2-11, there is no abort in layout_libs
when I prelink_entry_restore (prelink_filename_htab, "prelink.layout.list")
you provided.

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