| Summary: | yum crashes during dependence resolution | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Elmar Stellnberger <estellnb> | ||||||||
| Component: | rpm | Assignee: | Panu Matilainen <pmatilai> | ||||||||
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
| Severity: | unspecified | Docs Contact: | |||||||||
| Priority: | unspecified | ||||||||||
| Version: | 16 | CC: | ffesti, james.antill, jnovy, maxamillion, pmatilai, tla, zpavlas | ||||||||
| Target Milestone: | --- | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2012-01-12 08:30:43 UTC | Type: | --- | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Attachments: |
|
||||||||||
|
Description
Elmar Stellnberger
2012-01-05 17:59:09 UTC
Created attachment 550978 [details]
all yum.repos.d/*.repo-s cated in one
Created attachment 550979 [details]
screen output of yum in debug level 10 (highest)
Created attachment 550980 [details]
strace of yum until it crashes
> looking for ('/sbin/ldconfig', None, (None, None, None)) as a requirement of libSDL_gfx13.i586 0:2.0.19-11.1 - u This is the first file dep, maybe your /suse/var/rpm/Basenames DB is corrupt. Can you try to reproduce the following? $ python >>> from rpmUtils.transaction import initReadOnlyTransaction >>> ts=initReadOnlyTransaction('/suse') >>> [i.name for i in ts.dbMatch('basenames', '/sbin/ldconfig')] ['glibc'] >>> from rpmUtils.transaction import initReadOnlyTransaction >>> ts=initReadOnlyTransaction('/suse') >>> [i.name for i in ts.dbMatch('basenames', '/sbin/ldconfig')] Segmentation Fault / Memory Access Error In deed this reproduces the segmentation fault. An "rpm --rebuilddb" in the suse chroot could not fix the problem. However an "rpm --root=/suse --rebuilddb" did the thing: >>> [i.name for i in ts.dbMatch('basenames', '/sbin/ldconfig')] ['glibc'] I wonder on how SuSEs rpm-db format is incompatible with yum or rpmlib/Fedora and where to look for this issue. Basically I would have considered python-rpm/Fedora to be compatible with any rpm based distribution like RedHat, Mandrake and SUSE. Suse used to carry a "tagged fileindex" patch in their rpm which speeds up certain file queries but breaks fingerprinting semantics and worse, makes file name database indexes incompatible with upstream rpm. The patch has been removed from OpenSuse rpm at some point "recently" (dunno about specific versions but at least current version in their "factory" repo no longer has it) so the good news is that with later OpenSuse versions this particular problem is gone. In general, it's not safe to assume any rpm version will work correctly with a database created by another one unless --rebuilddb is done with the "currently used" rpm version first. The number and format of indexes can and does change between versions, so switching between rpm versions used to access a given database can result in index inconsistencies even without incompatible patches. What about fingerprinting semantics? When will there be a support for sha256/512sums for individual files in the rpm header? I currently don`t really like online-rpm distros as the file checksum algorithm is too week for security purposes (md5) although the current header tags provided place for a better hashing algorithm (f.i. sha-512/sha-256). |