Bug 468394 - --skip-broken doesn't
Summary: --skip-broken doesn't
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: yum
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Seth Vidal
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-24 14:43 UTC by Bill Nottingham
Modified: 2014-03-17 03:16 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-10-29 15:12:15 UTC


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

Description Bill Nottingham 2008-10-24 14:43:24 UTC
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 14:44:20 UTC
Created attachment 321416 [details]
yum.log

Comment 2 Tom Horsley 2008-10-25 04:17:06 UTC
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 13:20:05 UTC
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 13:59:39 UTC
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 08:26:20 UTC
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 08:31:10 UTC
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 18:15:05 UTC
Created attachment 321637 [details]
failing yum.log

Still fails.

Comment 8 Tim Lauridsen 2008-10-27 18:41:09 UTC
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 15:50:26 UTC
FYI, the current repo state is cleaned up enough that this works. :/

Comment 10 Tim Lauridsen 2008-10-29 11:41:47 UTC
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 14:04:14 UTC
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 15:04:49 UTC
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 15:12:15 UTC
very nice

Comment 14 Fedora Update System 2009-01-12 19:19:54 UTC
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 19:27:43 UTC
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-05 02:18:13 UTC
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-05 02:25:23 UTC
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.