Bug 468394 - --skip-broken doesn't
--skip-broken doesn't
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: yum (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Seth Vidal
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-10-24 10:43 EDT by Bill Nottingham
Modified: 2014-03-16 23:16 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-10-29 11:12:15 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
yum.log (202.24 KB, text/plain)
2008-10-24 10:44 EDT, Bill Nottingham
no flags Details
failing yum.log (15.42 KB, text/plain)
2008-10-27 14:15 EDT, Bill Nottingham
no flags Details

  None (edit)
Description Bill Nottingham 2008-10-24 10:43:24 EDT
skip-broken isn't coming up with a resolvable transaction, when it should be able to come up with something to upgrade.

Version-Release number of selected component (if applicable):

yum-3.2.19-6.fc10.noarch

How reproducible:

Every time.

Steps to Reproduce:
1. Upgrade
Comment 1 Bill Nottingham 2008-10-24 10:44:20 EDT
Created attachment 321416 [details]
yum.log
Comment 2 Tom Horsley 2008-10-25 00:17:06 EDT
Yep. I just had a similar experience.

yum update

 didn't work due to dependency problems with some packages

yum --skip-broken update

 tells me the same errors and says "Skip-broken could not solve problems"

yum --exclude='vlc*' --exclude='xine*' --exclude='directfb*' update

 command constructed by looking at the problems for a few seconds
 worked perfectly (may have excluded more than necessary, but at
 least I got lots of updates to install).

Here's the dependency problem from original yum update command:

yum update
...
--> Finished Dependency Resolution
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libdirectfb-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libfusion-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libdirect-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Error: Missing Dependency: libdirectfb-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Error: Missing Dependency: libfusion-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Error: Missing Dependency: libdirect-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)

Here's what I got with --skip-broken:

yum --skip-broken update
...
--> Finished Dependency Resolution
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libdirectfb-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libfusion-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
vlc-core-0.9.4-1.fc10.x86_64 from installed has depsolving problems
  --> Missing Dependency: libdirect-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
--> Running transaction check
---> Package directfb.x86_64 0:1.2.6-3.fc10 set to be updated
--> Processing Dependency: libfusion-1.2.so.0()(64bit) for package: xine-lib-extras
--> Processing Dependency: libdirectfb-1.2.so.0()(64bit) for package: xine-lib-extras
--> Processing Dependency: libdirect-1.2.so.0()(64bit) for package: xine-lib-extras
--> Finished Dependency Resolution
xine-lib-extras-1.1.15-2.fc10.x86_64 from rawhide has depsolving problems
  --> Missing Dependency: libfusion-1.2.so.0()(64bit) is needed by package xine-lib-extras-1.1.15-2.fc10.x86_64 (rawhide)
xine-lib-extras-1.1.15-2.fc10.x86_64 from rawhide has depsolving problems
  --> Missing Dependency: libdirectfb-1.2.so.0()(64bit) is needed by package xine-lib-extras-1.1.15-2.fc10.x86_64 (rawhide)
xine-lib-extras-1.1.15-2.fc10.x86_64 from rawhide has depsolving problems
  --> Missing Dependency: libdirect-1.2.so.0()(64bit) is needed by package xine-lib-extras-1.1.15-2.fc10.x86_64 (rawhide)
--> Running transaction check
---> Package xine-lib-extras.x86_64 0:1.1.15-2.fc10 set to be updated
--> Processing Dependency: xine-lib = 1.1.15-1.fc10.1 for package: xine-lib-extras
---> Package directfb.x86_64 0:1.2.6-3.fc10 set to be updated
--> Finished Dependency Resolution
xine-lib-extras-1.1.15-1.fc10.1.x86_64 from installed has depsolving problems
  --> Missing Dependency: xine-lib = 1.1.15-1.fc10.1 is needed by package xine-lib-extras-1.1.15-1.fc10.1.x86_64 (installed)
--> Running transaction check
--> Processing Dependency: xine-lib = 1.1.15-1.fc10.1 for package: xine-lib-extras
--> Finished Dependency Resolution
xine-lib-extras-1.1.15-1.fc10.1.x86_64 from installed has depsolving problems
  --> Missing Dependency: xine-lib = 1.1.15-1.fc10.1 is needed by package xine-lib-extras-1.1.15-1.fc10.1.x86_64 (installed)
Skip-broken could not solve problems
Error: Missing Dependency: libdirectfb-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Error: Missing Dependency: libfusion-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Error: Missing Dependency: libdirect-1.0.so.0()(64bit) is needed by package vlc-core-0.9.4-1.fc10.x86_64 (installed)
Comment 3 Tim Lauridsen 2008-10-26 09:20:05 EDT
the fun part is that i had the same dep problems on a i386 systems and 
'yum update --skip-broken' was working as a charm :(
look like i need to add some more skip broken output, so it is easier to see when it goes bad.

I will try to build some unit test cases to reproduce this error.
Comment 4 Tom Horsley 2008-10-26 09:59:39 EDT
I think 64 bit systems are often more confused because so many dual
version .386 and .x86_64 rpms are installed together which claim
to own the same files (I've never understood how that worked :-).

Especially when the .i386 and .x86_64 parts of the repos aren't in sync
dependencies get much more confused.

I think --skip-broken is probably trying to work backward, when what
it really ought to do is work forward. Start with a dependency graph
and descend through it collecting all the packages that can be installed
with no problems, then just leave out whatever did have a problem (he
said with no idea how anything in yum works :-).
Comment 5 Tim Lauridsen 2008-10-27 04:26:20 EDT
I think i have found the problem.

please get this one:

http://yum.baseurl.org/gitweb?p=yum.git;a=blob_plain;f=yum/__init__.py;hb=yum-3_2_X

and copy it to (as root)
/usr/lib/python2.5/site-packages/yum/__init__.py

making a backup of original might be a good idea :)

please test again with -d4 and attach the output.
Comment 6 Tim Lauridsen 2008-10-27 04:31:10 EDT
maybe it should be

/usr/lib64/python2.5/site-packages/yum/__init__.py on a x86_64 system ?
Comment 7 Bill Nottingham 2008-10-27 14:15:05 EDT
Created attachment 321637 [details]
failing yum.log

Still fails.
Comment 8 Tim Lauridsen 2008-10-27 14:41:09 EDT
This look very weird

here the stuff causing the failing is removed

SKIPBROKEN: removing xine-lib-extras-1.1.15-2.fc10.x86_64 from pkgSack & updates
SKIPBROKEN: removing libcaca-0.99-0.5.beta16.fc10.x86_64 from pkgSack & updates
SKIPBROKEN: removing libcaca-0.99-0.5.beta16.fc10.x86_64 from transaction
SKIPBROKEN: removing xine-lib-extras-1.1.15-1.fc10.1.x86_64 from transaction
SKIPBROKEN: removing libcaca-0.99-0.4.beta11.fc9.x86_64 from transaction
SKIPBROKEN: removing xine-lib-extras-1.1.15-2.fc10.x86_64 from transaction


And here it is still there, very weird.
---> Package xine-lib-extras.x86_64 0:1.1.15-2.fc10 set to be updated
---> Package libcaca.x86_64 0:0.99-0.5.beta16.fc10 set to be updated

Have to dig a little deeper.
Comment 9 Bill Nottingham 2008-10-28 11:50:26 EDT
FYI, the current repo state is cleaned up enough that this works. :/
Comment 10 Tim Lauridsen 2008-10-29 07:41:47 EDT
i dont matter i have created this skip-broken unit test to reproduce the
issue.

    def testBumpedSoName1(self):
        """ This will fail because the skip-broken code can handle this case
        d2 need a lib from b1, so the update fails.
        d2 and b2 get skipped, but the installed b1 needs a
        lib from a1, but it has been updated to a2, so it is
        no longer there.
        """
        a1 = self.instPackage('a', '1', arch='x86_64')
        a1.addProvides("liba.so.1()(64bit)")
        a2 = self.repoPackage('a', '2', arch='x86_64')
        a2.addProvides("liba.so.2()(64bit)")
        
        b1 = self.instPackage('b', '1', arch='x86_64')
        b1.addProvides("libb.so.1()(64bit)")
        b1.addRequires("liba.so.1()(64bit)")
        b2 = self.repoPackage('b', '2', arch='x86_64')
        b2.addProvides("libb.so.2()(64bit)")
        b2.addRequires("liba.so.2()(64bit)")
        
        c1 = self.instPackage('c', '1', arch='x86_64')
        c1.addRequires("liba.so.1()(64bit)")
        c2 = self.repoPackage('c', '2', arch='x86_64')
        c2.addRequires("liba.so.2()(64bit)")

        d1 = self.instPackage('d', '1', arch='x86_64')
        d1.addRequires("libb.so.1()(64bit)")
        d2 = self.repoPackage('d', '2', arch='x86_64')
        d2.addRequires("libb.so.1()(64bit)")

        e1 = self.instPackage('e', '1', arch='x86_64')
        e2 = self.repoPackage('e', '2', arch='x86_64')

        f1 = self.instPackage('f', '1', arch='x86_64')
        f2 = self.repoPackage('f', '2', arch='x86_64')

        self.tsInfo.addUpdate(a2, oldpo=a1)
        self.tsInfo.addUpdate(b2, oldpo=b1)
        self.tsInfo.addUpdate(c2, oldpo=c1)
        self.tsInfo.addUpdate(d2, oldpo=d1)
        self.tsInfo.addUpdate(e2, oldpo=e1)
        self.tsInfo.addUpdate(f2, oldpo=f1)
        self.assertEquals('ok', *self.resolveCode(skip=True))

so i can reproduce the issue, now i just need to find a fix so it can handle this case.
Comment 11 Tim Lauridsen 2008-10-29 10:04:14 EDT
Ok, i think i have fixed it.

http://yum.baseurl.org/gitweb?p=yum.git;a=blob_plain;f=yum/__init__.py;hb=yum-3_2_X

try this if the repos get in problems again.
Comment 12 Bill Nottingham 2008-10-29 11:04:49 EDT
yum-3.2.20-3 works with 'yum -C --skip-broken upgrade', pointed at the repodata dir from when there was the issue.
Comment 13 Tim Lauridsen 2008-10-29 11:12:15 EDT
very nice
Comment 14 Fedora Update System 2009-01-12 14:19:54 EST
yum-3.2.21-2.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/yum-3.2.21-2.fc10
Comment 15 Fedora Update System 2009-01-12 14:27:43 EST
yum-3.2.21-2.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/yum-3.2.21-2.fc9
Comment 16 Fedora Update System 2009-02-04 21:18:13 EST
yum-3.2.21-2.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 17 Fedora Update System 2009-02-04 21:25:23 EST
yum-3.2.21-2.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

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