Bug 49882

Summary: rpm segfaults when installing new packages after upgrad
Product: [Retired] Red Hat Linux Reporter: Matthew R. MacIntyre <matt>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED WORKSFORME QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: matt
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
URL: http://vv.carleton.ca/~matt/07-24-2001-var-lib-rpm.tar.gz
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-07-24 22:44:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matthew R. MacIntyre 2001-07-24 19:42:33 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.17-14smp i686; Nav)

Description of problem:
After an upgrade from redhat 6.2 to redhat 7.1, rpm segfaults on
installation of new packages, after the pre-install script stage of
installation.

How reproducible:
Always

Steps to Reproduce:
1. rpm -Uvh anypackagename.i386.rpm

	

Actual Results:  Here is one sample output:

[root@hedwig /root]# rpm -Uvvh setuptool-1.7-2.i386.rpm 
D: ============== setuptool-1.7-2.i386.rpm
D: Expected size:         9584 = lead(96)+sigs(149)+pad(3)+data(9336)
D:   Actual size:         9584
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages create mode=0x42
D: locked   db index       /var/lib/rpm/Packages
D: opening  db environment /var/lib/rpm/Name joinenv
D: opening  db index       /var/lib/rpm/Name create mode=0x42
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: ========== +++ setuptool-1.7-2
D: opening  db index       /var/lib/rpm/Depends create mode=0x42
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(VersionedDependencies) = 3.0.3-1
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(CompressedFileNames) = 3.0.4-1
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(PayloadIsBzip2) = 3.0.5-1
D:   YES    A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(PayloadFilesHavePrefix) = 4.0-1
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (rpmlib
provides)
D: opening  db environment /var/lib/rpm/Providename joinenv
D: opening  db index       /var/lib/rpm/Providename create mode=0x42
D:  Requires: ld-linux.so.2                                 YES (db
provides)
D:  Requires: libc.so.6                                     YES (db
provides)
D:  Requires: libdl.so.2                                    YES (db
provides)
D:  Requires: libm.so.6                                     YES (db
provides)
D:  Requires: libnewt.so.0.50                               YES (db
provides)
D:  Requires: libslang.so.1                                 YES (db
provides)
D:  Requires: libc.so.6(GLIBC_2.0)                          YES (db
provides)
D:  Requires: libc.so.6(GLIBC_2.1.3)                        YES (db
provides)
D:   NO     A rpmlib(CompressedFileNames) <= 3.0.4-1    B
rpmlib(VersionedDependencies) = 3.0.3-1
D:   YES    A rpmlib(CompressedFileNames) <= 3.0.4-1    B
rpmlib(CompressedFileNames) = 3.0.4-1
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (rpmlib
provides)
D: opening  db environment /var/lib/rpm/Conflictname joinenv
D: opening  db index       /var/lib/rpm/Conflictname create mode=0x42
D: ========== recording tsort relations
D: ========== tsorting packages (order, #predecessors, #succesors, depth)
D:    0   0   1   0  setuptool-1.7-2
D: installing binary packages
D: getting list of mounted filesystems
D: opening  db environment /var/lib/rpm/Basenames joinenv
D: opening  db index       /var/lib/rpm/Basenames create mode=0x42
D: opening  db environment /var/lib/rpm/Group joinenv
D: opening  db index       /var/lib/rpm/Group create mode=0x42
D: opening  db environment /var/lib/rpm/Requirename joinenv
D: opening  db index       /var/lib/rpm/Requirename create mode=0x42
D: opening  db environment /var/lib/rpm/Triggername joinenv
D: opening  db index       /var/lib/rpm/Triggername create mode=0x42
D: opening  db environment /var/lib/rpm/Dirnames joinenv
D: opening  db index       /var/lib/rpm/Dirnames create mode=0x42
D: opening  db environment /var/lib/rpm/Requireversion joinenv
D: opening  db index       /var/lib/rpm/Requireversion create mode=0x42
D: opening  db environment /var/lib/rpm/Provideversion joinenv
D: opening  db index       /var/lib/rpm/Provideversion create mode=0x42
D: opening  db environment /var/lib/rpm/Installtid joinenv
D: opening  db index       /var/lib/rpm/Installtid create mode=0x42
D: opening  db environment /var/lib/rpm/Removetid joinenv
D: opening  db index       /var/lib/rpm/Removetid create mode=0x42
Preparing...                ###########################################
[100%]
D: Expected size:         9584 = lead(96)+sigs(149)+pad(3)+data(9336)
D:   Actual size:         9584
D:   install: setuptool-1.7-2 has 7 files, test = 0
Segmentation fault (core dumped)
[root@hedwig /root]# 


Expected Results:  progress bar showing installation of package, followed
by "Done."

Additional info:

I first inquired about this problem on the rpm-list, and was asked to file
this bug report by Jeff Johnson, along with a link to my rpm database. 
Some of the other things we have already tried are in the 'RPM upgrade
problem' thread, beginning on July 24, 2001.

Comment 1 Matthew R. MacIntyre 2001-07-24 22:44:33 UTC
Jeff and I narrowed down the problem to being ldap-related.  Running rpm with
ldap passwords being used on the system, and nscd not running on the ldap host
caused rpm to segfault.

Is it possible to have rpm die gracefully from this situation, with an
appropriate error message, rather than have it segfault?



Comment 2 Jeff Johnson 2001-07-25 19:56:46 UTC
This is not an rpm problem, but an PAM ldap problem. Fix
is to run nscd, which works around a linker/loader problem
with the PAM LDAp module being linked against a library.

Comment 3 Simon Annetts 2001-10-17 16:44:24 UTC
I was using nss_ldap and my nsswitch.conf was configured to use ldap then files 
for passwd, group and shadow access. Removing ldap entry temporarily while 
installing some rpms fixed it for me.