Bug 507220

Summary: package-cleanup crashes with infinite recursion
Product: [Fedora] Fedora Reporter: Michal Schmidt <mschmidt>
Component: yum-utilsAssignee: Seth Vidal <skvidal>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: james.antill, pmatilai, tla
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 507885 (view as bug list) Environment:
Last Closed: 2009-06-22 05:26:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Michal Schmidt 2009-06-21 19:04:03 UTC
Description of problem:
package-cleanup --dupes crashes 

Version-Release number of selected component (if applicable):
yum-3.2.23-6.fc12.noarch
yum-utils-1.1.22-1.fc12.noarch

How reproducible:
always

Steps to Reproduce:
1. Run: package-cleanup --dupes
  
Actual results:
Setting up yum
Traceback (most recent call last):
  File "/usr/bin/package-cleanup", line 498, in <module>
    main()
  File "/usr/bin/package-cleanup", line 459, in main
    my = initYum(opts)
  File "/usr/bin/package-cleanup", line 60, in initYum
    my.doTsSetup()
  File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 85, in doTsSetup
    return self._getTs()
  File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 100, in _getTs
    self._getTsInfo(remove_only)
  File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 111, in _getTsInfo
    pkgSack = self.pkgSack
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 666, in <lambda>
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 507, in _getSacks
    self.excludePackages()
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1148, in excludePackages
    self.pkgSack.addPackageExcluder(repoid, 'exclude.match', match)
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 666, in <lambda>
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 507, in _getSacks
    self.excludePackages()
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1148, in excludePackages

...this trio is repeated many times, until it ends with...:

  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1148, in excludePackages
    self.pkgSack.addPackageExcluder(repoid, 'exclude.match', match)
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 666, in <lambda>
    pkgSack = property(fget=lambda self: self._getSacks(),
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 486, in _getSacks
    if self._pkgSack and thisrepo is None:
  File "/usr/lib/python2.6/site-packages/yum/packageSack.py", line 336, in __len__
    for sack in sorted(self.sacks.values()):
RuntimeError: maximum recursion depth exceeded while calling a Python object


Expected results:
No traceback.

Additional info:
This bug is similar to bug 485578, but it happens without having the versionlock plugin installed and even with no plugins at all.

Comment 2 Michal Schmidt 2009-06-22 06:46:53 UTC
I tested the patch. It fixes the bug. Thanks.

Comment 3 Fedora Update System 2009-09-03 19:33:56 UTC
yum-3.2.24-1.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/yum-3.2.24-1.fc11

Comment 4 Fedora Update System 2009-09-30 01:37:44 UTC
yum-3.2.24-2.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 5 Fedora Update System 2009-10-19 16:44:47 UTC
yum-3.2.24-2.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/yum-3.2.24-2.fc10

Comment 6 Fedora Update System 2009-11-04 12:05:02 UTC
yum-3.2.24-2.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.