[Yum-devel] [PATCH] Exceptions in depsolve.py (3_2_X branch, CentOS 5.4 installer)

James Antill james at fedoraproject.org
Thu Nov 12 17:08:19 UTC 2009


On Thu, 2009-11-12 at 11:20 -0500, Charlie Brady wrote:
> On Thu, 12 Nov 2009, James Antill wrote:
> 
> > On Wed, 2009-11-11 at 18:29 -0500, Charlie Brady wrote:
> >> --- depsolve.py.orig	2009-11-10 18:26:41.435910000 -0500
> >> +++ depsolve.py	2009-11-11 17:49:51.514498000 -0500
> >> @@ -1100,8 +1100,8 @@
> >>                       pkgresults[po] -= 1024
> >>
> >>                   obsoleted = False
> >> -                poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
> >> -                if nextpo.inPrcoRange('obsoletes', poprovtup):
> >> +                poprovtup = (po.name, 'EQ', (po.epoch, po.version, po.release))
> >> +                if nextpo.po.inPrcoRange('obsoletes', poprovtup):
> >
> > The actual bug here would be a higher caller putting a txmbr into the
> > list of things to compare_providers.
> 
> Aren't there two bugs? .ver member on po, and .inPrcoRange on nextpo?

 .ver will be == .version for any yum object above YumAvailablePackage.
 AFAIK the only bug is that nextpo is a TransactionMember and not a
PackageObject.

> > What is calling compare_providers in the traceback?
> 
> Traceback (most recent call first):
>    File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 1103, in 
> _compare_providers
>      poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
>    File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 2360, in 
> _bestPackageFromList
>      bestlist = self._compare_providers(pkglist, None)
>    File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 2385, in 
> bestPackagesFromList
>      single = self._bestPackageFromList(singleLib)
>    File "/tmp/updates/yuminstall.py", line 467, in tsCheck
>      member = self.bestPackagesFromList(pkgs)[0]
>    File "/tmp/updates/yuminstall.py", line 420, in resolveDeps
>      unresolved = self.tsCheck(unresolved)

 This is a really old anaconda that has it's own reolveDeps/tsCheck
(this is RHEL-5 anaconda, I assume?)
 To debug this you need to find out how the wrong objects are getting
into that list in anaconda, AFAIK the patch you posted shouldn't change
anything ... but I'm not a real anaconda developer.



More information about the Yum-devel mailing list