Bug 593330 - abrt-cli --report tries to use old rpm library (librpm.so.0)
Summary: abrt-cli --report tries to use old rpm library (librpm.so.0)
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: abrt   
(Show other bugs)
Version: 6.0
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Karel Klíč
QA Contact: Michal Nowak
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-05-18 14:36 UTC by Justin Clift
Modified: 2013-03-08 02:09 UTC (History)
8 users (show)

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 18:47:43 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

Description Justin Clift 2010-05-18 14:36:31 UTC
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 15:55:14 UTC
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 09:58:02 UTC
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 10:30:23 UTC
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 10:46:42 UTC
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 11:32:24 UTC
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 12:02:54 UTC
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 18:47:43 UTC
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.