Bug 728147 - --skip-broken on x86_64 causes installation of i686 packages
Summary: --skip-broken on x86_64 causes installation of i686 packages
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Fedora Packaging Toolset Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-08-04 08:14 UTC by Mads Kiilerich
Modified: 2014-01-21 23:18 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-02-14 02:09:15 UTC


Attachments (Terms of Use)
yum update --skip-broken -d5 > d5 2>&1 (47.78 KB, text/plain)
2011-08-05 10:03 UTC, Mads Kiilerich
no flags Details
yum update --skip-broken -d9 > d9 2>&1 (70.63 KB, text/plain)
2011-08-05 10:07 UTC, Mads Kiilerich
no flags Details
yum unittest to simulate the issue (1.96 KB, patch)
2011-08-16 14:51 UTC, Tim Lauridsen
no flags Details | Diff
another yum update -d9 --skip-broken (348.22 KB, text/plain)
2011-08-18 09:41 UTC, Mads Kiilerich
no flags Details

Description Mads Kiilerich 2011-08-04 08:14:27 UTC
[root@imac ~]# rpm -qa 'sssd-client'
sssd-client-1.5.11-2.fc16.x86_64
[root@imac ~]# rpm -qa |grep 686
[root@imac ~]# yum update sssd-client
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package sssd-client.x86_64 0:1.5.11-2.fc16 will be updated
--> Processing Dependency: sssd-client = 1.5.11-2.fc16 for package: sssd-1.5.11-2.fc16.x86_64
---> Package sssd-client.x86_64 0:1.6.0-2.fc16 will be an update
--> Running transaction check
---> Package sssd.x86_64 0:1.5.11-2.fc16 will be updated
---> Package sssd.x86_64 0:1.6.0-2.fc16 will be an update
--> Processing Dependency: libldb = 1.1.0 for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libipa_hbac.so.0()(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libunistring.so.0()(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Running transaction check
---> Package libipa_hbac.x86_64 0:1.6.0-2.fc16 will be installed
---> Package libunistring.x86_64 0:0.9.3-2.fc15 will be installed
---> Package sssd.x86_64 0:1.6.0-2.fc16 will be an update
--> Processing Dependency: libldb = 1.1.0 for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Finished Dependency Resolution
Error: Package: sssd-1.6.0-2.fc16.x86_64 (updates-testing)
           Requires: libldb = 1.1.0
           Installed: libldb-1.0.2-1.fc16.x86_64 (@fedora/rawhide)
               libldb = 1.0.2-1.fc16
Error: Package: sssd-1.6.0-2.fc16.x86_64 (updates-testing)
           Requires: libtevent.so.0(TEVENT_0.9.9)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@imac ~]# rpm -Va --nofiles --nodigest
[root@imac ~]# yum update sssd-client --skip-broken
Loaded plugins: langpacks, presto, refresh-packagekit
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package sssd-client.x86_64 0:1.5.11-2.fc16 will be updated
--> Processing Dependency: sssd-client = 1.5.11-2.fc16 for package: sssd-1.5.11-2.fc16.x86_64
---> Package sssd-client.x86_64 0:1.6.0-2.fc16 will be an update
--> Running transaction check
---> Package sssd.x86_64 0:1.5.11-2.fc16 will be updated
---> Package sssd.x86_64 0:1.6.0-2.fc16 will be an update
--> Processing Dependency: libldb = 1.1.0 for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libipa_hbac.so.0()(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libunistring.so.0()(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Running transaction check
---> Package libipa_hbac.x86_64 0:1.6.0-2.fc16 will be installed
---> Package libunistring.x86_64 0:0.9.3-2.fc15 will be installed
---> Package sssd.x86_64 0:1.6.0-2.fc16 will be an update
--> Processing Dependency: libldb = 1.1.0 for package: sssd-1.6.0-2.fc16.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: sssd-1.6.0-2.fc16.x86_64
--> Running transaction check
---> Package sssd-client.x86_64 0:1.5.11-2.fc16 will be updated
--> Processing Dependency: sssd-client = 1.5.11-2.fc16 for package: sssd-1.5.11-2.fc16.x86_64
---> Package sssd-client.x86_64 0:1.6.0-2.fc16 will be an update
--> Running transaction check
---> Package sssd-client.i686 0:1.5.11-2.fc16 will be installed
--> Processing Dependency: libpam.so.0(LIBPAM_EXTENSION_1.0) for package: sssd-client-1.5.11-2.fc16.i686
--> Processing Dependency: libpam.so.0(LIBPAM_1.0) for package: sssd-client-1.5.11-2.fc16.i686
--> Processing Dependency: libpam.so.0 for package: sssd-client-1.5.11-2.fc16.i686
--> Processing Dependency: libc.so.6(GLIBC_2.8) for package: sssd-client-1.5.11-2.fc16.i686
--> Processing Dependency: libpam.so.0(LIBPAM_MODUTIL_1.0) for package: sssd-client-1.5.11-2.fc16.i686
---> Package sssd-client.x86_64 0:1.5.11-2.fc16 will be updated
--> Running transaction check
---> Package glibc.i686 0:2.14.90-4 will be installed
--> Processing Dependency: libfreebl3.so for package: glibc-2.14.90-4.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.14.90-4.i686
---> Package pam.i686 0:1.1.4-3.fc16 will be installed
--> Processing Dependency: libcrack.so.2 for package: pam-1.1.4-3.fc16.i686
--> Processing Dependency: libdb-4.8.so for package: pam-1.1.4-3.fc16.i686
--> Processing Dependency: libselinux.so.1 for package: pam-1.1.4-3.fc16.i686
--> Processing Dependency: libaudit.so.1 for package: pam-1.1.4-3.fc16.i686
--> Running transaction check
---> Package audit-libs.i686 0:2.1.2-1.fc16 will be installed
---> Package cracklib.i686 0:2.8.18-2.fc15 will be installed
---> Package db4.i686 0:4.8.30-3.fc15 will be installed
---> Package libselinux.i686 0:2.0.102-6.fc16 will be installed
---> Package nss-softokn-freebl.i686 0:3.12.10-4.fc16 will be installed
--> Running transaction check
---> Package audit-libs.i686 0:2.1.2-1.fc16 will be installed
---> Package cracklib.i686 0:2.8.18-2.fc15 will be installed
---> Package db4.i686 0:4.8.30-3.fc15 will be installed
---> Package glibc.i686 0:2.14.90-4 will be installed
---> Package libselinux.i686 0:2.0.102-6.fc16 will be installed
---> Package nss-softokn-freebl.i686 0:3.12.10-4.fc16 will be installed
---> Package pam.i686 0:1.1.4-3.fc16 will be installed
---> Package sssd-client.i686 0:1.5.11-2.fc16 will be installed
---> Package sssd-client.x86_64 0:1.5.11-2.fc16 will be updated
---> Package sssd-client.x86_64 0:1.6.0-2.fc16 will be an update
--> Finished Dependency Resolution

Packages skipped because of dependency problems:
    libipa_hbac-1.6.0-2.fc16.x86_64 from updates-testing
    libunistring-0.9.3-2.fc15.x86_64 from fedora
    sssd-1.6.0-2.fc16.x86_64 from updates-testing
Error: Protected multilib versions: sssd-client-1.6.0-2.fc16.x86_64 != sssd-client-1.5.11-2.fc16.i686
[root@imac ~]# rpm -q yum rpm-libs
yum-3.4.3-4.fc16.noarch
rpm-libs-4.9.0-10.fc16.x86_64
[root@imac ~]#

Comment 1 Tim Lauridsen 2011-08-05 05:51:09 UTC
Could you please post the output from 'yum update -d5 --skip-broken sssd-client'

Comment 2 Mads Kiilerich 2011-08-05 10:03:47 UTC
Created attachment 516866 [details]
yum update --skip-broken -d5 > d5 2>&1

Comment 3 Mads Kiilerich 2011-08-05 10:07:39 UTC
Created attachment 516867 [details]
yum update --skip-broken -d9 > d9 2>&1

-d9 seems to show some relevant information in addition to what -d5 says:

archdist compared libipa_hbac-1.6.0-2.fc16.i686 to libipa_hbac-1.6.0-2.fc16.x86_64 on ia32e
  Winner: libipa_hbac-1.6.0-2.fc16.x86_64
common sourcerpm libipa_hbac-1.6.0-2.fc16.i686 and sssd-1.6.0-2.fc16.x86_64
base package sssd is installed for libipa_hbac-1.6.0-2.fc16.i686

(As you can see I hacked my yum config to avoid getting any repo changes that could hide this issue)

Comment 4 Mads Kiilerich 2011-08-05 10:12:17 UTC
Naaah. I guess the issue is caused by

SKIPBROKEN: removing sssd-1.6.0-2.fc16.x86_64 from pkgSack & updates

which removes the x86_64 package but doesn't remove the corresponding i686 package.

Perhaps --skip-broken could blacklist a whole source rpm instead of the individual packages?

Comment 5 Tim Lauridsen 2011-08-16 14:51:39 UTC
Created attachment 518509 [details]
yum unittest to simulate the issue

Comment 6 Tim Lauridsen 2011-08-16 15:11:18 UTC
OK, now I have made a unit test to reproduce the issue.

The issue is that

sssd.x86_64 is upgraded to sssd+1.x86_64
sssd-client.x86_64 is upgraded to sssd-client+1.x86_64

sssd+1.x86_64 has a broken dependency and is rollback to sssd.x86_64

sssd.x86_64 require sssd-client, but it has been replaced by sssd-client+1.x86_64

so sssd-client.i686 is marked to be installed.

Skip-broken does not fail, it is the only way to not break the requirements the installed sssd.x86_64.

Comment 7 Mads Kiilerich 2011-08-18 09:41:16 UTC
Created attachment 518833 [details]
another yum update -d9 --skip-broken

I had another issue that seemed similar. Is it the same? Or is it (also) a bug that the gnome-panel requirements don't specify arch?

# rpm -q --requires gnome-panel-3.0.2-3.fc16.x86_64 | grep panel-libs
gnome-panel-libs = 3.0.2-3.fc16

yum-3.4.3-4.fc16.noarch
rpm-libs-4.9.1.1-2.fc16.x86_64

Comment 8 Tim Lauridsen 2011-08-18 12:46:56 UTC
same issue with gnome-panel & gnome-panel-libs, one is updated and the other one is skipped and then skipped installed package is missing some deps and pull in a whole lot of i686 packages.

gnome-panel-libs should have a arch specific require to the base package.

https://fedoraproject.org/wiki/Packaging/Guidelines#RequiringBasePackage  

But this is a rather new guideline, AFAIK

I not sure how --skip-broken should handle it, it find a solution, but not the best one :)

Comment 9 Bill Nottingham 2011-08-24 18:01:46 UTC
(In reply to comment #4)
> Naaah. I guess the issue is caused by
> 
> SKIPBROKEN: removing sssd-1.6.0-2.fc16.x86_64 from pkgSack & updates
> 
> which removes the x86_64 package but doesn't remove the corresponding i686
> package.
> 
> Perhaps --skip-broken could blacklist a whole source rpm instead of the
> individual packages?

Blacklist all arches, not the whole source rpm. That I believe would solve it for the vast majority of cases.

Comment 10 Tim Lauridsen 2011-08-25 16:32:28 UTC
(In reply to comment #9)
> (In reply to comment #4)
> > Naaah. I guess the issue is caused by
> > 
> > SKIPBROKEN: removing sssd-1.6.0-2.fc16.x86_64 from pkgSack & updates
> > 
> > which removes the x86_64 package but doesn't remove the corresponding i686
> > package.
> > 
> > Perhaps --skip-broken could blacklist a whole source rpm instead of the
> > individual packages?
> 
> Blacklist all arches, not the whole source rpm. That I believe would solve it
> for the vast majority of cases.

The current skip-broken will remove all archs for foo-2.0, if foo-2.0.x86_64 is skipped, but it will not remove foo-1.0.i686.
The problem here is that foobar-1.0.x86_64 require foo-1.0 that is provided by both foo-1.0.i686 & foo-1.0.x86_64 and foo-1.0.x86_64 is updated to foo-2.0.x86_64 in same transaction, but foobar-1.0.x86_64 can't be update to foobar-2.0.x86_64 because some other dep problem and the currently installed foobar-1.0.x86_64 is now missing the foo-1.0 dependency and drags in foo-1.0.i686 instead.
If foobar-1.0.x86_64 had required required foo-1.0.x86_64, then skip broken would have skipped the foo-2.0.x86_64 update

Comment 11 Tim Lauridsen 2011-08-25 16:39:38 UTC
Skipping all packages from the same srpm, would solve this issues, but in other cases it would skip to may good updates.

Ex.
yum-utils srpm contains the base yum-utils package and a lot of plugins sub packages.

So if you have installed yum-utils & 5 plugins and there is a update where one of the plugins has a broken dep, then the yum-utils and the 4 other plugins would be skipped to, even that they don't have any issues at all.

Comment 12 Mads Kiilerich 2011-08-25 18:11:39 UTC
(In reply to comment #11)
> Skipping all packages from the same srpm, would solve this issues, but in other
> cases it would skip to may good updates.

But ... as you said, the guidelines says that subpackages should have an arch [and nvr] specific require to the base package anyway, so that shouldn't make much difference.

Bodhi will push all subpackages at once, so I think it will be OK if yum (by default) did the same when installing.

Comment 13 Fedora Admin XMLRPC Client 2012-04-27 15:28:08 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 14 Fedora End Of Life 2013-02-14 02:09:20 UTC
Fedora 16 changed to end-of-life (EOL) status on 2013-02-12. Fedora 16 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.