Bug 468394
Summary: | --skip-broken doesn't | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Bill Nottingham <notting> | ||||||
Component: | yum | Assignee: | Seth Vidal <skvidal> | ||||||
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | rawhide | CC: | ffesti, horsley1953, james.antill, katzj, pmatilai, rvokal, tim.lauridsen | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2008-10-29 15:12:15 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: | |||||||||
Attachments: |
|
Description
Bill Nottingham
2008-10-24 14:43:24 UTC
Created attachment 321416 [details]
yum.log
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) 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. 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 :-). 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. maybe it should be /usr/lib64/python2.5/site-packages/yum/__init__.py on a x86_64 system ? Created attachment 321637 [details]
failing yum.log
Still fails.
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. FYI, the current repo state is cleaned up enough that this works. :/ 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. 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. yum-3.2.20-3 works with 'yum -C --skip-broken upgrade', pointed at the repodata dir from when there was the issue. very nice 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 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 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. 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. |