Description of problem: Yum upgrade frequently fails with misleading 'Protected multilib versions...' error. Let's have following situation: An upgrade from version A to version B. In B package set there is one/multiple missing packages. Above described scenario currently leads to misleading error: ... Error: Protected multilib versions: qpid-cpp-server-0.14-16.el6.x86_64 != qpid-cpp-server-0.14-14.el6_2.i686 Error: Protected multilib versions: qpid-cpp-client-0.14-14.el6_2.i686 != qpid-cpp-client-0.14-16.el6.x86_64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest Note that neither qpid-cpp-server-0.14-14.el6_2.i686 nor qpid-cpp-client-0.14-14.el6_2.i686 are installed. Looking more to the root of problem I found rootcause in heavy verbose yum log: ... Resolving Dependencies --> Running transaction check ---> Package qpid-cpp-client.x86_64 0:0.14-14.el6_2 will be updated Checking deps for qpid-cpp-client.x86_64 0:0.14-14.el6_2 - ud rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 requires: qpid-cpp-client = 0.14-14.el6_2 --> Processing Dependency: qpid-cpp-client = 0.14-14.el6_2 for package: rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 Potential Provider: qpid-cpp-client.x86_64 0:0.14-14.el6_2 Mode is ud for provider of qpid-cpp-client = 0.14-14.el6_2: qpid-cpp-client.x86_64 0:0.14-14.el6_2 Mode for pkg providing qpid-cpp-client = 0.14-14.el6_2: ud Trying to update rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 to resolve dep No update paths found for rh-qpid-cpp-tests-0.14-14.el6_2.x86_64. Failure! ... Yum should not confuse users. In this situation there is missing one package (rh-qpid-cpp-tests-0.14-14) in B package set NOT a multilib trouble. Yum package dependency resolver started to behave this (new) way on rhel6.3. Version-Release number of selected component (if applicable): yum-3.2.29-30.el6.noarch How reproducible: 100% Steps to Reproduce: 1. Let's have two set of packages A (old) and B (new) 2. delete one of packages from B 3. try to do upgrade / localinstall to upgrade from A to B Actual results: Misleading multilib issue is reported. Expected results: The missing package should be reported. Additional info:
Created attachment 598473 [details] yum upgrade terminal transcript The attached verbose off/on yum upgrade terminal log shows misleading error message.
A small correction in desc: > > Yum should not confuse users. In this situation there is missing one package > (rh-qpid-cpp-tests-0.14-14) in B package set NOT a multilib trouble. > Yum should not confuse users. In this situation there is missing corresponding rh-qpid-cpp-tests package in B package set (rh-qpid-cpp-tests-0.14-16 which is not available) NOT a multilib trouble.
Added a giant text message upstream about what protected_mutilib errors usualy mean. Hopefully that will point people to the root cause.
Hi James, could you please point me to the upstream change?
http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff;h=dd59c6676575355dae4da8bd233f428aa582d0d0
Hi Frantisek, I'm trying to reproduce the reported issue but I'm not able. You can find below what I tried. Do I miss something? What packages was installed on you test system? The verbose mode also do not provide much more help. 1. Install the "old" packages for qpid-cpp # rpm -qa | grep qpid-cpp qpid-cpp-client-0.14-14.el6_2.x86_64 qpid-cpp-server-xml-0.14-14.el6_2.x86_64 qpid-cpp-server-rdma-0.14-14.el6_2.x86_64 qpid-cpp-client-devel-docs-0.14-14.el6_2.noarch qpid-cpp-client-ssl-0.14-14.el6_2.x86_64 qpid-cpp-server-store-0.14-14.el6_2.x86_64 qpid-cpp-client-devel-0.14-14.el6_2.x86_64 qpid-cpp-server-ssl-0.14-14.el6_2.x86_64 rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 qpid-cpp-client-rdma-0.14-14.el6_2.x86_64 qpid-cpp-debuginfo-0.14-14.el6_2.x86_64 qpid-cpp-server-0.14-14.el6_2.x86_64 qpid-cpp-server-cluster-0.14-14.el6_2.x86_64 qpid-cpp-server-devel-0.14-14.el6_2.x86_64 2. Create a custom repo which contain all pkgs for qpid-cpp-client-0.14-16 x86_64 and i686 except rh-qpid-cpp-tests-0.14-16.el6.x86_64.rpm # ls -1 qpid-cpp-client-0.14-16.el6.i686.rpm qpid-cpp-client-0.14-16.el6.x86_64.rpm qpid-cpp-client-devel-0.14-16.el6.i686.rpm qpid-cpp-client-devel-0.14-16.el6.x86_64.rpm qpid-cpp-client-devel-docs-0.14-16.el6.noarch.rpm qpid-cpp-client-rdma-0.14-16.el6.i686.rpm qpid-cpp-client-rdma-0.14-16.el6.x86_64.rpm qpid-cpp-client-ssl-0.14-16.el6.i686.rpm qpid-cpp-client-ssl-0.14-16.el6.x86_64.rpm qpid-cpp-debuginfo-0.14-16.el6.i686.rpm qpid-cpp-debuginfo-0.14-16.el6.x86_64.rpm qpid-cpp-server-0.14-16.el6.i686.rpm qpid-cpp-server-0.14-16.el6.x86_64.rpm qpid-cpp-server-cluster-0.14-16.el6.i686.rpm qpid-cpp-server-cluster-0.14-16.el6.x86_64.rpm qpid-cpp-server-devel-0.14-16.el6.i686.rpm qpid-cpp-server-devel-0.14-16.el6.x86_64.rpm qpid-cpp-server-rdma-0.14-16.el6.i686.rpm qpid-cpp-server-rdma-0.14-16.el6.x86_64.rpm qpid-cpp-server-ssl-0.14-16.el6.i686.rpm qpid-cpp-server-ssl-0.14-16.el6.x86_64.rpm qpid-cpp-server-store-0.14-16.el6.i686.rpm qpid-cpp-server-store-0.14-16.el6.x86_64.rpm qpid-cpp-server-xml-0.14-16.el6.i686.rpm qpid-cpp-server-xml-0.14-16.el6.x86_64.rpm repodata 3. Upgrade # rpm -q yum yum-3.2.29-30.el6.noarch # yum upgrade Loaded plugins: downloadonly, product-id, security, subscription-manager, tmprepo Updating certificate-based repositories. Unable to read consumer identity beaker-client | 1.3 kB 00:00 beaker-client/primary | 4.3 kB 00:00 beaker-client 14/14 qa-tools | 1.2 kB 00:00 qa-tools/primary | 27 kB 00:00 qa-tools 193/193 rhel6 | 4.0 kB 00:00 rhel6/primary_db | 3.1 MB 00:00 rhel6-debug | 3.0 kB 00:00 rhel6-debug/primary_db | 512 kB 00:00 rhel6-opt | 3.8 kB 00:00 rhel6-opt/primary_db | 1.3 MB 00:00 rhel6-opt-debug | 3.0 kB 00:00 rhel6-opt-debug/primary_db | 370 kB 00:00 rhel6-supp | 4.0 kB 00:00 rhel6-supp/primary_db | 51 kB 00:00 tmp | 1.3 kB 00:00 ... tmp/primary | 6.0 kB 00:00 ... tmp 25/25 Setting up Upgrade Process Resolving Dependencies --> Running transaction check ---> Package qpid-cpp-client.x86_64 0:0.14-14.el6_2 will be updated --> Processing Dependency: qpid-cpp-client = 0.14-14.el6_2 for package: rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 ---> Package qpid-cpp-client.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-client-devel.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-client-devel.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-client-devel-docs.noarch 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-client-devel-docs.noarch 0:0.14-16.el6 will be an update ---> Package qpid-cpp-client-rdma.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-client-rdma.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-client-ssl.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-client-ssl.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-debuginfo.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-debuginfo.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server.x86_64 0:0.14-14.el6_2 will be updated --> Processing Dependency: qpid-cpp-server = 0.14-14.el6_2 for package: rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 ---> Package qpid-cpp-server.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-cluster.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-cluster.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-devel.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-devel.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-rdma.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-rdma.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-ssl.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-ssl.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-store.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-store.x86_64 0:0.14-16.el6 will be an update ---> Package qpid-cpp-server-xml.x86_64 0:0.14-14.el6_2 will be updated ---> Package qpid-cpp-server-xml.x86_64 0:0.14-16.el6 will be an update --> Finished Dependency Resolution Error: Package: rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 (@/rh-qpid-cpp-tests-0.14-14.el6_2.x86_64) Requires: qpid-cpp-client = 0.14-14.el6_2 Removing: qpid-cpp-client-0.14-14.el6_2.x86_64 (installed) qpid-cpp-client = 0.14-14.el6_2 Updated By: qpid-cpp-client-0.14-16.el6.x86_64 (rhel6) qpid-cpp-client = 0.14-16.el6 Error: Package: rh-qpid-cpp-tests-0.14-14.el6_2.x86_64 (@/rh-qpid-cpp-tests-0.14-14.el6_2.x86_64) Requires: qpid-cpp-server = 0.14-14.el6_2 Removing: qpid-cpp-server-0.14-14.el6_2.x86_64 (@/qpid-cpp-server-0.14-14.el6_2.x86_64) qpid-cpp-server = 0.14-14.el6_2 Updated By: qpid-cpp-server-0.14-16.el6.x86_64 (rhel6) qpid-cpp-server = 0.14-16.el6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
(In reply to comment #6) > http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff; > h=dd59c6676575355dae4da8bd233f428aa582d0d0 I have successfully reproduced the issue with 2nd case from the description in above commit. Thus, clearing the needinfo. Since all three cases point to only one change in yum code (and grepping over yum code showed that there is no other 'Protected multilib versions' message), there is no need to reproduce all of them.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-0406.html