Bug 593330 - abrt-cli --report tries to use old rpm library (librpm.so.0)
abrt-cli --report tries to use old rpm library (librpm.so.0)
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: abrt (Show other bugs)
6.0
All Linux
low Severity medium
: rc
: ---
Assigned To: Karel Klíč
Michal Nowak
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-18 10:36 EDT by Justin Clift
Modified: 2013-03-07 21:09 EST (History)
8 users (show)

See Also:
Fixed In Version: abrt-1.1.4-1.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-07-02 14:47:43 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Justin Clift 2010-05-18 10:36:31 EDT
Description of problem:

When using RHEL 6 beta (x86_64) and trying to send a crash report using "abrt-cli --report <UUID>", it complains about a missing librpm.so.0.

librpm.so.1 is present on the system though, so it kind of looks like abrt is looking for an older version of things and may need to be recompiled/relinked?


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

$ rpm -qa | grep -i abrt
abrt-addon-python-1.0.7-5.el6.x86_64
abrt-plugin-logger-1.0.7-5.el6.x86_64
abrt-cli-1.0.7-5.el6.x86_64
abrt-addon-ccpp-1.0.7-5.el6.x86_64
abrt-libs-1.0.7-5.el6.x86_64
abrt-1.0.7-5.el6.x86_64
abrt-addon-kerneloops-1.0.7-5.el6.x86_64
abrt-plugin-bugzilla-1.0.7-5.el6.x86_64
abrt-plugin-sosreport-1.0.7-5.el6.x86_64
abrt-plugin-ticketuploader-1.0.7-5.el6.x86_64
$


How reproducible:

Unknown.  Time attempt at sending a crash report using abrt-cli.


Steps to Reproduce:
1. After an application has crashed, get a list of available crashes to report:

$ sudo abrt-cli --get-list
0.
	UID        : 0
	UUID       : 1fa4ec36a5a13f72b3a57e47cc3a37b035336ad4
	Package    : libvirt-0.7.6-2.el6
	Executable : /usr/sbin/libvirtd
	Crash Time : Tue 18 May 2010 09:58:07 PM EST
	Crash Count: 1
1.
	UID        : 0
	UUID       : f87262b1cdccc738aa3f86006b30411fc083e221
	Package    : libvirt-0.7.6-2.el6
	Executable : /usr/sbin/libvirtd
	Crash Time : Wed 19 May 2010 12:01:16 AM EST
	Crash Count: 2
$


2. Attempt to send a crash report for one of them:

$ sudo abrt-cli --report f87262b1cdccc738aa3f86006b30411fc083e221

(the bug presents itself here)

  
Actual results:

The bug presents as below (commented lines removed, as they're not relevant to this bug report):

%----backtrace
warning: Unable to open "librpm.so.0" (librpm.so.0: cannot open shared object file: No such file or directory), missing debuginfos notifications will not be displayed
Missing separate debuginfo for /usr/sbin/libvirtd
Try: yum --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/8d/69cfe1af2b4cc8e20d8ddbbf5346d2a5f1fea6.debug /var/cache/abrt-di/usr/lib/debug/.build-id/8d/69cfe1af2b4cc8e20d8ddbbf5346d2a5f1fea6.debug

(plus many more repeats of "Missing separate debuginfo for xyz")


Expected results:

The correct rpm library already present on the system, librpm.so.1, to be used and the relevant debuginfo to be found/installed/etc.


Additional info:

A newer version of librpm is present in RHEL 6 beta than librpm.so.0:

$ locate librpm
/usr/lib64/librpm.so.1
/usr/lib64/librpm.so.1.0.0
/usr/lib64/librpmbuild.so.1
/usr/lib64/librpmbuild.so.1.0.0
/usr/lib64/librpmio.so.1
/usr/lib64/librpmio.so.1.0.0
$ rpm -qf /usr/lib64/librpm.so.1
rpm-libs-4.8.0-4.el6.x86_64
$
Comment 2 RHEL Product and Program Management 2010-06-07 11:55:14 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.
Comment 3 Karel Klíč 2010-06-09 05:58:02 EDT
Hello Justin,

it seems to be fixed in current version of ABRT

$ repoquery --requires abrt
...
librpm.so.1()(64bit)
...
Comment 8 Justin Clift 2010-06-09 06:30:23 EDT
Hi Karel,

Unfortunately, that is also shown on the RHEL 6 system this error occurred on.
:(

  $ repoquery --requires abrt | grep rpm
  librpm.so.1()(64bit)
  librpmio.so.1()(64bit)
  $

Running the above reqoquery against every package installed on the system also
didn't reveal anything:

  $ for i in `rpm -qa`; do echo $i | tee -a /tmp/repoquery.output; repoquery
--requires ${i} | grep rpm | tee -a /tmp/repoquery.output; echo | tee -a
/tmp/repoquery.output; done

Grepping the output of the above shows several mentions of librpm.so.1, but
none for .0.

Any ideas?
Comment 9 Justin Clift 2010-06-09 06:46:42 EDT
Getting creative and scanning everything on the system that even looks executable didn't help either:

  $ for i in `sudo find / -type f -executable -xdev`; do echo $i | tee -a /tmp/repoquery.output; sudo ldd ${i} | grep librpm.so | tee -a /tmp/repoquery.output; echo | tee -a /tmp/repoquery.output; done

Still nothing shows up that refers to librpm.so.0.

:/
Comment 10 Justin Clift 2010-06-09 07:32:24 EDT
Running "strings" against every file on the file system showed an interesting possibility:

  $ for i in `sudo find / -xdev -type f`; do echo $i | tee -a /tmp/repoquery.output; sudo strings ${i} | grep librpm.so | tee -a /tmp/repoquery.output; echo | tee -a /tmp/repoquery.output; done

In the output it lists:

  /usr/bin/gdb
  librpm.so.0

gdb in this case is from:

  $ rpm -qf /usr/bin/gdb
  gdb-7.0.1-23.el6.x86_64
  $

Running ldd against gdb didn't reveal anything useful:

  $ ldd /usr/bin/gdb
	linux-vdso.so.1 =>  (0x00007fff1917b000)
	libreadline.so.6 => /lib64/libreadline.so.6 (0x0000003169e00000)
	libncurses.so.5 => /lib64/libncurses.so.5 (0x0000003b0da00000)
	libz.so.1 => /lib64/libz.so.1 (0x000000385bc00000)
	libm.so.6 => /lib64/libm.so.6 (0x000000385b400000)
	libdl.so.2 => /lib64/libdl.so.2 (0x000000385ac00000)
	libpython2.6.so.1.0 => /usr/lib64/libpython2.6.so.1.0 (0x000000316d200000)
	libexpat.so.1 => /lib64/libexpat.so.1 (0x000000385d000000)
	libc.so.6 => /lib64/libc.so.6 (0x000000385a800000)
	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x000000385d800000)
	/lib64/ld-linux-x86-64.so.2 (0x000000385a000000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x000000385b000000)
	libutil.so.1 => /lib64/libutil.so.1 (0x0000003169600000)
  $

So this could just be a junk match.  However, I'm not so sure.

Is there any chance ABRT runs gdb in some fashion to determine the debugging symbols needed for a backtrace, or similar?
Comment 11 Karel Klíč 2010-06-09 08:02:54 EDT
Good catch! Thank you for the investigation.
Yes, ABRT calls gdb.

I checked the GDB changelog and this bug has been fixed, but the fix has been ported to RHEL-6 later.

* Sat Jan 16 2010 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.0.50.20100116-1.f13
...
- Update rpm.org#76 workaround for rpm-4.8 using librpm.so.1.

Current RHEL-6 version is gdb-7.1-21.el6.x86_64, ./configure is called with option "--with-rpm=librpm.so.1".
Comment 14 releng-rhel@redhat.com 2010-07-02 14:47:43 EDT
Red Hat Enterprise Linux Beta 2 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.

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