Bug 214110
Summary: | yum check-update segfaults | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kasper Dupont <bugzilla> |
Component: | rpm | Assignee: | Paul Nasrat <nobody+pnasrat> |
Status: | CLOSED DUPLICATE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 5 | CC: | chitlesh, vedran |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2007-07-17 12:07:51 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
Kasper Dupont
2006-11-05 20:12:27 UTC
You need to do rm -f /var/lib/rpm/__db* after *every* exceptional event like a segfault. Might the following be another symptom of the same bug, or is it a different bug? On another computer also running FC5 /etc/cron.daily/rpm got stuck in an infinite loop. Using strace I could see it was just burning CPU cycles never making any system calls. Here is the output I got using gdb on the process: gdb /usr/lib/rpm/rpmq 5199 GNU gdb Red Hat Linux (6.3.0.0-1.134.fc5rh) Copyright 2004 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-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". Attaching to program: /usr/lib/rpm/rpmq, process 5199 Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xe1b000 `shared object read from target memory' has disappeared; keeping its symbols. Reading symbols from /usr/lib/librpmbuild-4.4.so...Reading symbols from /usr/lib/debug/usr/lib/librpmbuild-4.4.so.debug...done. done. Loaded symbols for /usr/lib/librpmbuild-4.4.so Reading symbols from /usr/lib/librpm-4.4.so...Reading symbols from /usr/lib/debug/usr/lib/librpm-4.4.so.debug...done. done. Loaded symbols for /usr/lib/librpm-4.4.so Reading symbols from /usr/lib/librpmdb-4.4.so...Reading symbols from /usr/lib/debug/usr/lib/librpmdb-4.4.so.debug...done. done. Loaded symbols for /usr/lib/librpmdb-4.4.so Reading symbols from /lib/libselinux.so.1...done. Loaded symbols for /lib/libselinux.so.1 Reading symbols from /usr/lib/librpmio-4.4.so...Reading symbols from /usr/lib/debug/usr/lib/librpmio-4.4.so.debug...done. done. Loaded symbols for /usr/lib/librpmio-4.4.so Reading symbols from /usr/lib/libpopt.so.0...Reading symbols from /usr/lib/debug/usr/lib/libpopt.so.0.0.0.debug...done. done. Loaded symbols for /usr/lib/libpopt.so.0 Reading symbols from /usr/lib/libsqlite3.so.0...done. Loaded symbols for /usr/lib/libsqlite3.so.0 Reading symbols from /usr/lib/libelf.so.1...done. Loaded symbols for /usr/lib/libelf.so.1 Reading symbols from /usr/lib/libbeecrypt.so.6...done. Loaded symbols for /usr/lib/libbeecrypt.so.6 Reading symbols from /usr/lib/libneon.so.25...done. Loaded symbols for /usr/lib/libneon.so.25 Reading symbols from /lib/libm.so.6...done. Loaded symbols for /lib/libm.so.6 Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libpthread.so.0...done. [Thread debugging using libthread_db enabled] [New Thread -1208543008 (LWP 5199)] Loaded symbols for /lib/libpthread.so.0 Reading symbols from /usr/lib/libbz2.so.1...done. Loaded symbols for /usr/lib/libbz2.so.1 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/libsepol.so.1...done. Loaded symbols for /lib/libsepol.so.1 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/libssl.so.6...done. Loaded symbols for /lib/libssl.so.6 Reading symbols from /lib/libcrypto.so.6...done. Loaded symbols for /lib/libcrypto.so.6 Reading symbols from /usr/lib/libgssapi_krb5.so.2...done. Loaded symbols for /usr/lib/libgssapi_krb5.so.2 Reading symbols from /usr/lib/libkrb5.so.3...done. Loaded symbols for /usr/lib/libkrb5.so.3 Reading symbols from /usr/lib/libk5crypto.so.3...done. Loaded symbols for /usr/lib/libk5crypto.so.3 Reading symbols from /usr/lib/libkrb5support.so.0...done. Loaded symbols for /usr/lib/libkrb5support.so.0 Reading symbols from /lib/libcom_err.so.2...done. Loaded symbols for /lib/libcom_err.so.2 Reading symbols from /lib/libresolv.so.2...done. Loaded symbols for /lib/libresolv.so.2 Reading symbols from /lib/libexpat.so.0...done. Loaded symbols for /lib/libexpat.so.0 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libsetrans.so.0...done. Loaded symbols for /lib/libsetrans.so.0 0x003fa5ac in __db_shalloc_rpmdb (infop=0x82cbbc0, len=4223, align=Variable "align" is not available. ) at ../db/dist/../env/db_salloc.c:171 171 ../db/dist/../env/db_salloc.c: No such file or directory. in ../db/dist/../env/db_salloc.c (gdb) bt #0 0x003fa5ac in __db_shalloc_rpmdb (infop=0x82cbbc0, len=4223, align=Variable "align" is not available. ) at ../db/dist/../env/db_salloc.c:171 #1 0x00420411 in __memp_alloc_rpmdb (dbmp=0x82cbb70, infop=0x82cbbc0, mfp=0xb7f6d4f8, len=4223, offsetp=0x0, retp=0xbfc3ace8) at ../db/dist/../mp/mp_alloc.c:88 #2 0x00421a80 in __memp_fget_rpmdb (dbmfp=0x82cbf78, pgnoaddr=0xbfc3ad6c, flags=0, addrp=0xbfc3ad48) at ../db/dist/../mp/mp_fget.c:369 #3 0x003f2850 in __db_goff_rpmdb (dbp=0x82cbc78, dbt=0x82cd32c, tlen=200168, pgno=22422, bpp=0x82cc104, bpsz=0x82cc10c) at ../db/dist/../db/db_overflow.c:147 #4 0x003fa15d in __db_ret_rpmdb (dbp=0x82cbc78, h=0xb7e5649c, indx=59, dbt=0x82cd32c, memp=0x82cc104, memsize=0x82cc10c) at ../db/dist/../db/db_ret.c:50 #5 0x003e548d in __db_c_get_rpmdb (dbc_arg=0x82cc0b8, key=0x82cd314, data=0x82cd32c, flags=Variable "flags" is not available. ) at ../db/dist/../db/db_cam.c:778 #6 0x003eb946 in __db_c_get_pp_rpmdb (dbc=0x82cc0b8, key=0x82cd314, data=0x82cd32c, flags=18) at ../db/dist/../db/db_iface.c:1741 #7 0x0037b946 in db3cget (dbi=0x82cb6d0, dbcursor=0x82cc0b8, key=0x82cd314, data=0x82cd32c, flags=18) at db3.c:612 #8 0x00375f73 in rpmdbNextIterator (mi=0x82cd2f8) at rpmdb.h:591 #9 0x0075931f in rpmgiNext (gi=0x82cb528) at rpmgi.c:504 #10 0x0074aa2b in rpmgiShowMatches (qva=0x7b5680, ts=0x82cb2f0) at query.c:372 #11 0x0074b032 in rpmQueryVerify (qva=0x7b5680, ts=0x82cb2f0, arg=0x0) at query.c:448 #12 0x0074be9e in rpmcliArgIter (ts=0x82cb2f0, qva=0x7b5680, argv=0x0) at query.c:728 #13 0x0074c002 in rpmcliQuery (ts=0x82cb2f0, qva=0x7b5680, argv=0x0) at query.c:807 #14 0x08049afc in main (argc=5, argv=0xbfc3c1d4) at ./rpmqv.c:804 #15 0x00b3f4e4 in __libc_start_main () from /lib/libc.so.6 #16 0x08049251 in _start () I have the same segfault bug . And I have to rm -f /var/lib/rpm/__db*. However to me this occurs after a successful yum install/update. Either this is a duplicate of 213963 or the other way round. Someone with apropriate permissions should decide. Segafualts and loss of data are likely due to removing an rpmdb environment without correcting other problems in the rpmdb. FYI: Most rpmdb "hangs" are now definitely fixed by purging stale read locks when opening a database environment in rpm-4.4.8-0.4. There's more todo, but I'm quite sure that a large class of problems with symptoms of "hang" are now corrected. Detecting damaged by verifying when needed is well automated in rpm-4.4.8-0.4. Automatically correcting all possible damage is going to take more work, but a large class of problems is likely already fixed in rpm-4.4.8-0.8 as well. UPSTREAM I don't see any updates, I did yum check-update just a few hours ago. And now I see the looping rpmq process again. The stack trace is slightly different from last time. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libsetrans.so.0...done. Loaded symbols for /lib/libsetrans.so.0 0x00424bdb in __memp_fput_rpmdb (dbmfp=0x909cf78, pgaddr=0xb7ed1bec, flags=Variable "flags" is not available. ) at ../db/dist/../mp/mp_fput.c:217 217 ../db/dist/../mp/mp_fput.c: No such file or directory. in ../db/dist/../mp/mp_fput.c (gdb) bt #0 0x00424bdb in __memp_fput_rpmdb (dbmfp=0x909cf78, pgaddr=0xb7ed1bec, flags=Variable "flags" is not available. ) at ../db/dist/../mp/mp_fput.c:217 #1 0x003e4aec in __db_c_cleanup (dbc=0x909d0b8, dbc_n=0x90a6a18, failed=0) at ../db/dist/../db/db_cam.c:1485 #2 0x003e5125 in __db_c_get_rpmdb (dbc_arg=0x909d0b8, key=0x909e314, data=0x909e32c, flags=3085769708) at ../db/dist/../db/db_cam.c:808 #3 0x003eb946 in __db_c_get_pp_rpmdb (dbc=0x909d0b8, key=0x909e314, data=0x909e32c, flags=18) at ../db/dist/../db/db_iface.c:1741 #4 0x0037b946 in db3cget (dbi=0x909c6d0, dbcursor=0x909d0b8, key=0x909e314, data=0x909e32c, flags=18) at db3.c:612 #5 0x00375f73 in rpmdbNextIterator (mi=0x909e2f8) at rpmdb.h:591 #6 0x0075931f in rpmgiNext (gi=0x909c528) at rpmgi.c:504 #7 0x0074aa2b in rpmgiShowMatches (qva=0x7b5680, ts=0x909c2f0) at query.c:372 #8 0x0074b032 in rpmQueryVerify (qva=0x7b5680, ts=0x909c2f0, arg=0x0) at query.c:448 #9 0x0074be9e in rpmcliArgIter (ts=0x909c2f0, qva=0x7b5680, argv=0x0) at query.c:728 #10 0x0074c002 in rpmcliQuery (ts=0x909c2f0, qva=0x7b5680, argv=0x0) at query.c:807 #11 0x08049afc in main (argc=5, argv=0xbf879e04) at ./rpmqv.c:804 #12 0x00b3f4e4 in __libc_start_main () from /lib/libc.so.6 #13 0x08049251 in _start () (gdb) rpm-4.4.8-0.4 is not in FC (but the changes should, nay need!, to be in FC). The rpm-4.4.8-0.4 bits are at ftp://wraptastic.org/pub/rpm/i386-linux/{RPMS,SRPMS} which is also a rpm-metadata repository. If you actually try rpm-4.4.8-0.4, you will need an additional /etc/rpm/sysinfo file that is masking out certain problems with FC6 packages and rpm-4.4.8-0.4. The copy I am currently using is at ftp://wraptastic.org/pub/jbj/sysinfo Copy to /etc/rpm/sysinfo. Alternatively, get used to invoking rpm -Uvh with additional --noparentdirs --nolinktos (but that will not work with yum, /etc/rpm/sysinfo is the recommended solution) |