From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux 2.4.1 i686; en-US; 0.8) Gecko/20010221 After installing nautilus to have a look at it, rpm will no longer upgrade packages segfaulting on the upgrade process. This is most prevelant in third party packages, though some official Red Hat packages are affected. This also affects the various frontends out there, up2date, redcarpet etc.. Reproducible: Always Steps to Reproduce: 1.Install nautilus 2.uninstall nautilus 3.Attempt to upgrade any third party package Actual Results: Segfault Expected Results: Package upgrade. versions of things installed. rpm-devel-4.0-4 rpm-python-4.0-4 rpmfind-1.5-3 rpm-4.0-4 rpmdb-redhat-7.0-0.20000830 gnorpm-0.95.1-5 rpmlint-0.14-4 rpm2html-1.4-4 rpm-build-4.0-4db1-devel-1.85-4 gdbm-devel-1.8.0-5 db3-3.1.14-6 db1-1.85-4 db3-devel-3.1.14-6 db3-utils-3.1.14-6 db2-devel-2.4.14-4 db2-2.4.14-4 Output of failed attempt: rpm -vv -Uvh /var/cache/redcarpet/packages/libglade-0.1 4-0_helix_1.i386.rpm D: counting packages to install D: found 1 packages D: looking for packages to download D: retrieved 0 packages D: New Header signature D: Signature size: 149 D: Signature pad : 3 D: sigsize : 152 D: Header + Archive: 101556 D: expected size : 101556 D: opening db index /var/lib/rpm/Packages create mode=0x42 D: locked db index /var/lib/rpm/Packages D: opening db index /var/lib/rpm/Name create mode=0x42 D: found 0 source and 1 binary packages D: opening db index /var/lib/rpm/Depends create mode=0x42 D: opening db index /var/lib/rpm/Providename create mode=0x42 D: Requires: gnome-libs YES (db provides) D: Requires: libxml YES (db provides) D: opening db index /var/lib/rpm/Basenames create mode=0x42 D: Requires: /sbin/ldconfig YES (db files) D: NO A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(VersionedDepend encies) = 3.0.3-1 D: NO A rpmlib(PayloadFilesHavePrefix) <= 4.0-1 B rpmlib(CompressedFileN ames) = 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(PayloadFilesHav ePrefix) = 4.0-1 D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides ) D: Requires: ld-linux.so.2 YES (db provides) D: Requires: libart_lgpl.so.2 YES (db provides) D: Requires: libaudiofile.so.0 YES (db provides) D: Requires: libc.so.6 YES (db provides) D: Requires: libdb.so.2 YES (db provides) D: Requires: libdl.so.2 YES (db provides) D: Requires: libesd.so.0 YES (db provides) D: Requires: libgdk-1.2.so.0 YES (db provides) D: Requires: libgdk_imlib.so.1 YES (db provides) D: Requires: libglib-1.2.so.0 YES (db provides) D: Requires: libgmodule-1.2.so.0 YES (db provides) D: Requires: libgnome.so.32 YES (db provides) D: Requires: libgnomesupport.so.0 YES (db provides) D: Requires: libgnomeui.so.32 YES (db provides) D: Requires: libgtk-1.2.so.0 YES (db provides) D: Requires: libICE.so.6 YES (db provides) D: Requires: libm.so.6 YES (db provides) D: Requires: libSM.so.6 YES (db provides) D: Requires: libX11.so.6 YES (db provides) D: Requires: libXext.so.6 YES (db provides) D: Requires: libXi.so.6 YES (db provides) D: Requires: libxml.so.1 YES (db provides) D: Requires: libz.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(VersionedDepend encies) = 3.0.3-1 D: YES A rpmlib(CompressedFileNames) <= 3.0.4-1 B rpmlib(CompressedFileN ames) = 3.0.4-1 D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides ) D: opening db index /var/lib/rpm/Conflictname create mode=0x42 D: opening db index /var/lib/rpm/Requirename create mode=0x42 D: the "B" dependency needs an epoch (assuming same as "A") A libglade = 1:0.14-0_helix_1 B libglade >= 0.11 D: YES A libglade = 1:0.14-0_helix_1 B libglade >= 0.11 D: Requires: libglade >= 0.11 YES (added provide) D: YES A libglade = 1:0.14-0_helix_1 B libglade D: Requires: libglade YES (added provide) D: the "B" dependency needs an epoch (assuming same as "A") A libglade = 1:0.14-0_helix_1 B libglade >= 0.14 D: YES A libglade = 1:0.14-0_helix_1 B libglade >= 0.14 D: Requires: libglade >= 0.14 YES (added provide) D: the "B" dependency needs an epoch (assuming same as "A") A libglade = 1:0.14-0_helix_1 B libglade >= 0.7-1 D: YES A libglade = 1:0.14-0_helix_1 B libglade >= 0.7-1 D: Requires: libglade >= 0.7-1 YES (added provide) D: Requires: R libglade >= 0.11 YES (cached) D: YES A libglade-gnome.so.0 B libglade-gnome.so.0 D: Requires: libglade-gnome.so.0 YES (added provide) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: Requires: R libglade-gnome.so.0 YES (cached) D: YES A libglade.so.0 B libglade.so.0 D: Requires: libglade.so.0 YES (added provide) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade.so.0 YES (cached) D: Requires: R libglade >= 0.11 YES (cached) D: Requires: R libglade YES (cached) D: Requires: R libglade >= 0.14 YES (cached) D: Requires: R libglade >= 0.7-1 YES (cached) D: Requires: R libglade >= 0.11 YES (cached) D: installing binary packages D: getting list of mounted filesystems D: opening db index /var/lib/rpm/Group create mode=0x42 D: opening db index /var/lib/rpm/Triggername create mode=0x42 Segmentation fault (core dumped) rpm -vv -qip libglade-0.14-0_helix_1.i386.rpm D: New Header signature D: Signature size: 149 D: Signature pad : 3 D: sigsize : 152 D: Header + Archive: 101556 D: expected size : 101556 Name : libglade Relocations: (not relocateable) Version : 0.14 Vendor: Helix Code, Inc. Release : 0_helix_1 Build Date: Thu 05 Oct 2000 12:36:25 AM EDT Install date: (not installed) Build Host: woolly-mammoth.helixcode.com Group : System Environment/Libraries Source RPM: libglade-0.14-0_helix_1.src.rpm Size : 277841 License: LGPL URL : http://www.daa.com.au/~james/gnome/ Summary : Library for loading a UI from an XML description at runtime. Description : Libglade is a small library that allows a program to load its user interface from am XML description at runtime. Libglade uses the XML file format used by the GLADE user interface builder GLADE, so libglade acts as an alternative to GLADE's code generation approach. Libglade also provides a simple interface for connecting handlers to the various signals in the interface (on platforms where the gmodule library works correctly, it is possible to connect all the handlers with a single function call). Once the interface has been instantiated, libglade gives no overhead, so other than the short initial interface loading time, there is no performance tradeoff. gdb interaction gdb rpm GNU gdb 5.0 Copyright 2000 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux"... (no debugging symbols found)... (gdb) run -Uvh /var/cache/redcarpet/packages/libglade-0.14-0_helix_1.i386.rpm Starting program: /bin/rpm -Uvh /var/cache/redcarpet/packages/libglade-0.14-0_he lix_1.i386.rpm warning: shared library handler failed to enable breakpoint Program received signal SIGSEGV, Segmentation fault. 0x806e4d4 in ?? () (gdb) bt #0 0x806e4d4 in ?? () #1 0x8070371 in ?? () #2 0x8067974 in ?? () #3 0x804b29a in ?? () #4 0x8101801 in ?? () (gdb) quit
This is a Nautilus problem, not a Red Hat problem, dunno how to fix Nautilus packaging. FWIW, I believe the problem is fixed with rpm-4.0.2 packages at ftp://ftp.rpm.org/pub/rpm/test-4.0.2 (which may be unavailable for another 24 hours or so). Please reopen if not.
Jeff, Please explain how this can be a nautilus problem when nautilus is _no longer installed_ ? So if I read your explaination correctly: rpm -i <bunch of packages> test package, decied you don't like said package(s) rpm -e <above packages> rpm -U <some random third party package> Segfault Bug in no longer installed package? In any case off to get the 4.0.2 test bits.
Ok more fun: ls rpm*.rpm rpm-4.0.2-7x.i386.rpm rpm-devel-4.0.2-7x.i386.rpm rpm-build-4.0.2-7x.i386.rpm rpm-python-4.0.2-7x.i386.rpm rpm -Uvh rpm-* Segmentation fault (core dumped) --- rpm -vv -Uh rpm-* D: counting packages to install D: found 4 packages D: looking for packages to download D: retrieved 0 packages D: New Header signature D: Signature size: 68 D: Signature pad : 4 D: sigsize : 72 D: Header + Archive: 1274806 D: expected size : 1274806 D: opening db index /var/lib/rpm/Packages create mode=0x42 D: locked db index /var/lib/rpm/Packages D: opening db index /var/lib/rpm/Name create mode=0x42 D: New Header signature D: Signature size: 68 D: Signature pad : 4 D: sigsize : 72 D: Header + Archive: 62668 D: expected size : 62668 D: New Header signature D: Signature size: 68 D: Signature pad : 4 D: sigsize : 72 D: Header + Archive: 286189 D: expected size : 286189 D: New Header signature D: Signature size: 68 D: Signature pad : 4 D: sigsize : 72 D: Header + Archive: 31696 D: expected size : 31696 D: found 0 source and 4 binary packages D: opening db index /var/lib/rpm/Depends create mode=0x42 D: opening db index /var/lib/rpm/Providename create mode=0x42 D: Requires: gawk YES (db provides) D: Requires: fileutils YES (db provides) D: Requires: textutils YES (db provides) D: Requires: mktemp YES (db provides) D: Requires: popt YES (db provides) D: YES A glibc = 2.2-12 B glibc >= 2.1.92 D: Requires: glibc >= 2.1.92 YES (db provides) D: YES A db1 = 1.85-4 B db1 = 1.85 D: Requires: db1 = 1.85 YES (db provides) D: opening db index /var/lib/rpm/Basenames create mode=0x42 D: Requires: /bin/sh YES (db files) D: Requires: /sbin/ldconfig YES (db files) D: Requires: ld-linux.so.2 YES (db provides) D: Requires: libbz2.so.1 YES (db provides) D: Requires: libc.so.6 YES (db provides) D: Requires: libdb-3.1.so YES (db provides) D: Requires: libdb.so.2 YES (db provides) D: Requires: libpopt.so.0 YES (db provides) D: YES A librpm.so.0 B librpm.so.0 D: Requires: librpm.so.0 YES (added provide) D: YES A librpmbuild.so.0 B librpmbuild.so.0 D: Requires: librpmbuild.so.0 YES (added provide) D: YES A librpmio.so.0 B librpmio.so.0 D: Requires: librpmio.so.0 YES (added provide) D: Requires: libz.so.1 YES (db provides) D: Requires: R /bin/sh YES (cached) D: Requires: libc.so.6(GLIBC_2.0) YES (db provides) D: Requires: libc.so.6(GLIBC_2.1) YES (db provides) D: Requires: libc.so.6(GLIBC_2.1.3) YES (db provides) D: Requires: libc.so.6(GLIBC_2.2) YES (db provides) D: Requires: libdb.so.2(GLIBC_2.0) YES (db provides) D: NO A rpmlib(CompressedFileNames) <= 3.0.4-1 B rpmlib(VersionedDepend encies) = 3.0.3-1 D: YES A rpmlib(CompressedFileNames) <= 3.0.4-1 B rpmlib(CompressedFileN ames) = 3.0.4-1 D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides ) D: NO A patch = 2.5.4-4 B patch < 2.5 D: Conflicts: patch < 2.5 NO D: opening db index /var/lib/rpm/Conflictname create mode=0x42 D: NO A rpm = 4.0.2-7x B rpm <= 4.0-0.65 D: Conflicts: rpm <= 4.0-0.65 NO D: Conflicts: C rpm <= 4.0-0.65 NO (cached) D: YES A rpm = 4.0.2-7x B rpm = 4.0.2 D: Requires: rpm = 4.0.2 YES (added provide) D: Requires: R ld-linux.so.2 YES (cached) D: Requires: R libbz2.so.1 YES (cached) D: Requires: R libc.so.6 YES (cached) D: Requires: R libdb-3.1.so YES (cached) D: Requires: R libdb.so.2 YES (cached) D: Requires: R libpopt.so.0 YES (cached) D: Requires: R librpm.so.0 YES (cached) D: Requires: R librpmbuild.so.0 YES (cached) D: Requires: R librpmio.so.0 YES (cached) D: Requires: R libz.so.1 YES (cached) D: Requires: /bin/bash YES (db files) D: Requires: R /bin/sh YES (cached) D: Requires: /usr/bin/perl YES (db files) D: Requires: R libc.so.6(GLIBC_2.0) YES (cached) D: Requires: R libc.so.6(GLIBC_2.1) YES (cached) D: Requires: R libc.so.6(GLIBC_2.1.3) YES (cached) D: Requires: R rpmlib(CompressedFileNames) <= 3.0.4-1 YES (cached) D: Requires: R rpm = 4.0.2 YES (cached) D: Requires: R popt YES (cached) D: Requires: R /sbin/ldconfig YES (cached) D: Requires: R rpmlib(CompressedFileNames) <= 3.0.4-1 YES (cached) D: YES A popt = 1.6-4 B popt >= 1.5 D: Requires: popt >= 1.5 YES (db provides) D: YES A python = 1.5.2-27 B python >= 1.5.2 D: Requires: python >= 1.5.2 YES (db provides) D: Requires: R /sbin/ldconfig YES (cached) D: Requires: R ld-linux.so.2 YES (cached) D: Requires: R libbz2.so.1 YES (cached) D: Requires: R libc.so.6 YES (cached) D: Requires: R libdb-3.1.so YES (cached) D: Requires: R libdb.so.2 YES (cached) D: Requires: R libpopt.so.0 YES (cached) D: Requires: R librpm.so.0 YES (cached) D: Requires: R librpmio.so.0 YES (cached) D: Requires: R libz.so.1 YES (cached) D: Requires: R libc.so.6(GLIBC_2.0) YES (cached) D: Requires: R libc.so.6(GLIBC_2.1.3) YES (cached) D: Requires: R rpmlib(CompressedFileNames) <= 3.0.4-1 YES (cached) D: opening db index /var/lib/rpm/Requirename create mode=0x42 D: YES A rpm-python = 4.0.2-7x B rpm-python >= 3.0.5 D: Requires: rpm-python >= 3.0.5 YES (added provide) D: YES A rpm-python = 4.0.2-7x B rpm-python D: Requires: rpm-python YES (added provide) D: YES A rpm-python = 4.0.2-7x B rpm-python >= 3.0.4 D: Requires: rpm-python >= 3.0.4 YES (added provide) D: Requires: R rpm-python YES (cached) D: Requires: R rpm-python >= 3.0.5 YES (cached) D: Requires: R rpm-python YES (cached) D: Requires: R rpm-python >= 3.0.4 YES (cached) D: Requires: R rpm-python YES (cached) D: YES A rpm = 4.0.2-7x B rpm >= 3.0.5 D: Requires: rpm >= 3.0.5 YES (added provide) D: Requires: R rpm >= 3.0.5 YES (cached) D: YES A rpm = 4.0.2-7x B rpm >= 3.0.4 D: Requires: rpm >= 3.0.4 YES (added provide) D: Requires: R librpm.so.0 YES (cached) D: Requires: R librpm.so.0 YES (cached) D: Requires: R librpm.so.0 YES (cached) D: Requires: R librpmio.so.0 YES (cached) D: Requires: R librpmio.so.0 YES (cached) D: Requires: R librpmio.so.0 YES (cached) D: Requires: R rpm >= 3.0.5 YES (cached) D: Requires: R rpm >= 3.0.5 YES (cached) D: Requires: R rpm >= 3.0.4 YES (cached) D: installing binary packages D: getting list of mounted filesystems D: opening db index /var/lib/rpm/Group create mode=0x42 D: opening db index /var/lib/rpm/Triggername create mode=0x42 Segmentation fault (core dumped) And the only thing left from the nautilus install is as follows: rpm -qa | grep eazel freetype2-devel-2.0.1-1_eazel_1 freetype2-2.0.1-1_eazel_1
Because Nautilus added packages to the rpm database that don't have RPMTAG_FILESTATES exercising known segfaults in rpm-4.0 from "can't happen" conditions triggered by the Nautilus upgrade. Go try rpm-4.0.2 from ftp.rpm.org, I believe your problem is fixed there.
Again, the problem is in your database, and you're using rpm-4.0 (which will segfault when presented with the lack of the RPMTAG_FILESTATES). If all else fails, do this: cd /var/tmp rpm2cpio rpm-4.0.2-7x.i386.rpm | cpio -dim cp bin/rpm /bin and then install the rpm-4.0.2 packages using the rpm-4.0.2 executable. Fun, ain't it :-(