Bug 149472
Summary: | upgrade rpm on x86_64 - up2date 4.2.57-2 'unresolvable chain of dependencies' | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 3 | Reporter: | Clifford Perry <cperry> |
Component: | up2date | Assignee: | Adrian Likins <alikins> |
Status: | CLOSED ERRATA | QA Contact: | Beth Nackashi <bnackash> |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 3.0 | CC: | mspevack, tao |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | RHBA-2005-712 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-09-28 17:14:29 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: | |||
Bug Depends On: | 142767 | ||
Bug Blocks: | 155571, 156320 |
Description
Clifford Perry
2005-02-23 14:08:06 UTC
As you see within the debug output from up2date. Up2date from what I can tell is doing the following : - grabs headers - determines (correctly) new version of rpm to be installed - looks for the dependancies needed to meet the upgrade of rpm - gets a list of packages needed - rpm-build, rpm-devel, rpm-libs & rpm-python - incorrectly determines that rpm-libs-4.2.3-13.i386 meets the dependancies needed for rpm-4.2.3-13.x86_64 : D: Package rpm-libs raised invalid dependency. Adding ['rpm-libs', '4.2.3', '13', '', 'i386', '718083', 'rhel-x86_64-as-3'] to set - This I believe is because the rpm-libs-4.2.3-13 is within the rhel-x86_64-as-3 as both an .i386 and .x86_64 package, but the listing of packages up2date gets, lists the .i386 version before the .x86_64 version. - Since up2date does not perform any validation of the arch type when querying for dependancies up2date assumes the .i386 of rpm-libs does meet the dependancy required by the .x86_64 rpm package and this then triggers the rest of up2date attempting to meet the required dependancies for the .i386 version of rpm-libs and eventually fails. The resolution it seems to this is to rewrite the code within up2date's up2date_client/depSolver.py file such that it does correctly take into account the arch of a package and most like make the assumption that a x86_64 package has a dependancy for another x86_64 package in the channel, if no such package by the same matching arch exists, look for any other packages which provide that dependancy. From my testing I can also state the following to be true, and can be used as alternative methods to work arround this issue. 1 - If you schedule the rpm errata to be applied to a system via the RHN web interface and then use rhn_check to pull down the new rpm packages - this works fine. # rhn_check -v errata.update ([289],) Name Version Rel ---------------------------------------------------------- popt 1.8.2 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. rpm 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. rpm-build 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. rpm-devel 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. rpm-libs 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. rpm-python 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. popt-1.8.2-13.x86_64.rpm: ########################## Done. rpm-4.2.3-13.x86_64.rpm: ########################## Done. rpm-build-4.2.3-13.x86_64.r ########################## Done. rpm-devel-4.2.3-13.x86_64.r ########################## Done. rpm-libs-4.2.3-13.x86_64.rp ########################## Done. rpm-python-4.2.3-13.x86_64. ########################## Done. Preparing ########################################### [100%] Installing... 1:popt ########################################### [100%] 2:rpm-libs ########################################### [100%] 3:rpm ########################################### [100%] 4:rpm-build ########################################### [100%] 5:rpm-devel ########################################### [100%] 6:rpm-python ########################################### [100%] # 2 - If I manually download the (x86_64) rpm packages, I can manually upgrade rpm to the new version using rpm -Uvh. Any attempt to use setarch or the --arch flags does not resolve the issue. Attempted : # setarch x86_64 up2date -v rpm Fetching Obsoletes list for channel: rhel-x86_64-as-3... Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- rpm 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. Testing package set / solving RPM inter-dependencies... There was a package dependency problem. The message was: Unresolvable chain of dependencies: rpm-libs 4.2.3-13 requires libelf.so.1 rpm-libs 4.2.3-13 requires libelf.so.1(ELFUTILS_1.0) # up2date --arch x86_64 -v rpm Fetching Obsoletes list for channel: rhel-x86_64-as-3... ######################################## Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- rpm 4.2.3 13 x86_64 [RHBA-2004:501-07] An updated rpm package that allows concurrent rpmdb access is now available. Testing package set / solving RPM inter-dependencies... There was a package dependency problem. The message was: Unresolvable chain of dependencies: rpm-libs 4.2.3-13 requires libbeecrypt.so.6 rpm-libs 4.2.3-13 requires libbz2.so.1 rpm-libs 4.2.3-13 requires libc.so.6 rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.0) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.1) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.1.3) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.2) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.2.3) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.3) rpm-libs 4.2.3-13 requires libc.so.6(GLIBC_2.3.2) rpm-libs 4.2.3-13 requires libelf.so.1 rpm-libs 4.2.3-13 requires libelf.so.1(ELFUTILS_1.0) rpm-libs 4.2.3-13 requires libpopt.so.0 rpm-libs 4.2.3-13 requires libpthread.so.0 rpm-libs 4.2.3-13 requires libpthread.so.0(GLIBC_2.0) rpm-libs 4.2.3-13 requires libpthread.so.0(GLIBC_2.1) rpm-libs 4.2.3-13 requires libpthread.so.0(GLIBC_2.2) rpm-libs 4.2.3-13 requires libpthread.so.0(GLIBC_2.3.2) rpm-libs 4.2.3-13 requires librt.so.1 rpm-libs 4.2.3-13 requires libz.so.1 # I've seen this a few times as well. It seems to be fixed by installing both the x86 and x86_64 versions of all of the elfutils-* packages. The release intended for u6 is from the up2date-4.4.x series, and will include a fix for this. This bug is considered MustFix for RHEL 3 U6 by RHN Engineering. Dev & PM ACKs for U6 please include a test plan On an AMD64 system, try the following # up2date rpm (..) Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- rpm 4.2.3 13 x86_64 Testing package set / solving RPM inter-dependencies... There was a package dependency problem. The message was: Unresolvable chain of dependencies: rpm-libs 4.2.3-13 requires libelf.so.1 rpm-libs 4.2.3-13 requires libelf.so.1(ELFUTILS_1.0) This is a reliable reproducer and should tell whether the problem is still in up2date. -Imed test plan: 1. install rhel3, say, u1 on a 64bit box, (amd64) 2. install latest up2date 3. `up2date rpm` 4. Should install correctly with no error I followed the Steps to Reproduce but still got a failure due to dependency issues. [root@vzlatkin-64 up2date-4.2.57-2]# uname -a Linux vzlatkin-64.rdu.redhat.com 2.4.21-27.EL #1 Wed Dec 1 22:07:17 EST 2004 x86_64 x86_64 x86_64 GNU/Linux [root@vzlatkin-64 up2date-4.2.57-2]# rpm -q redhat-release redhat-release-3AS-12.4 This is RHEL 3 U4 AS. [root@vzlatkin-64 up2date-4.2.57-2]# up2date rpm Fetching Obsoletes list for channel: rhel-x86_64-as-3... Fetching Obsoletes list for channel: playpen-4AS... Fetching Obsoletes list for channel: support-4AS... Fetching Obsoletes list for channel: playpen-3AS... Fetching Obsoletes list for channel: support-3AS... Fetching Obsoletes list for channel: playpen-java-3AS... Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- rpm 4.2.3 21_nonptl x86_64 Testing package set / solving RPM inter-dependencies... Downloading headers to solve dependencies... ####################################### Downloading headers to solve dependencies... ####################################### Downloading headers to solve dependencies... ####################################### Downloading headers to solve dependencies... ####################################### Downloading headers to solve dependencies... ####################################### Downloading headers to solve dependencies... There was a package dependency problem. The message was: Unresolvable chain of dependencies: rpm-libs 4.2.3-21_nonptl requires libelf.so.1 rpm-libs 4.2.3-21_nonptl requires libelf.so.1(ELFUTILS_1.0) The following packages were added to your selection to satisfy dependencies: Package Required by ---------------------------------------------------------------------------- glibc-2.3.2-95.33.x86_64 glibc-utils-2.3.2-95.30 glibc [root@vzlatkin-64 up2date-4.2.57-2]# rpm -q up2date up2date-4.4.27-3 From the web UI: Summary: Package Install scheduled by bnackash Details: This action will be executed after 2005-07-10 15:01:48 EDT. This action's status is: Failed. The client picked up this action on 2005-07-10 15:01:54 EDT. The client completed this action on 2005-07-10 15:02:11 EDT. Client execution returned "Failed: packages requested raised dependency problems" (code 18) Packages Scheduled: * rpm-4.2.3-21_nonptl Dependency errors encountered: * rpm-libs-4.2.3-21_nonptl needs libelf.so.1 * rpm-libs-4.2.3-21_nonptl needs libelf.so.1(ELFUTILS_1.0 fix should be in 4.4.33 with rhel 3 u3 and up2date-4.4.33: [root@mspevack64 root]# rpm -q up2date up2date-4.4.33-3 [root@mspevack64 root]# up2date rpm 0. debug No 1. useRhn Yes 2. rhnuuid 35f2e080-042d-11da-8972-00d0b74d46de 3. isatty Yes 4. showAvailablePacka No 5. retrieveOnly No 6. enableRollbacks No 7. noSSLServerURL http://xmlrpc.rhn.redhat.com/XMLRPC 8. pkgSkipList ['kernel*'] 9. storageDir /var/spool/up2date 10. adminAddress ['root@localhost'] 11. noBootLoader No 12. serverURL https://xmlrpc.rhn.webqa.redhat.com/XMLRPC 13. fileSkipList [] 14. versionOverride 15. sslCACert /usr/share/rhn/RHNS-CA-CERT 16. noReplaceConfig Yes 17. useNoSSLForPackage No 18. systemIdPath /etc/sysconfig/rhn/systemid 19. enableProxyAuth No 20. retrieveSource No 21. disallowConfChange ['noReboot', 'sslCACert', 'useNoSSLForPackages', 'noSSLSe 22. headerFetchCount 10 23. networkRetries 5 24. pkgsToInstallNotUp ['kernel', 'kernel-modules', 'kernel-devel'] 25. enableProxy No 26. proxyPassword 27. updateUp2date Yes 28. keepAfterInstall No 29. proxyUser 30. removeSkipList ['kernel*'] 31. useGPG No 32. gpgKeyRing /etc/sysconfig/rhn/up2date-keyring.gpg 33. httpProxy 34. headerCacheSize 40 35. forceInstall No 36. noReboot No Enter number of item to edit <return to exit, q to quit without saving>: Fetching Obsoletes list for channel: rhel-x86_64-as-3... ######################################## Fetching Obsoletes list for channel: rhn-tools-rhel-3-as-x86_64... ######################################## Fetching rpm headers... ######################################## Name Version Rel ---------------------------------------------------------- rpm 4.2.3 21_nonptl x86_64 Testing package set / solving RPM inter-dependencies... ######################################## rpm-4.2.3-21_nonptl.x86_64. ########################## Done. rpm-libs-4.2.3-21_nonptl.x8 ########################## Done. rpm-python-4.2.3-21_nonptl. ########################## Done. Preparing ########################################### [100%] Installing... 1:rpm-libs ########################################### [100%] 2:rpm ########################################### [100%] 3:rpm-python ########################################### [100%] The following packages were added to your selection to satisfy dependencies: Name Version Release -------------------------------------------------------------- rpm-libs 4.2.3 21_nonptl rpm-python 4.2.3 21_nonptl [root@mspevack64 root]# PROD_READY is a deprecated state. This bug is now RELEASE_PENDING. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2005-712.html |