Created attachment 518324 [details]
Patch to fix the described bug
Description of problem:
In the pulp.server.api.depsolver.DepSolver constructor, a yum.repos.RepoStorage object is instantiated as such:
self._repostore = RepoStorage(self)
But the RepoStorage constructor isn't expecting a Pulp DepSolver object; it's expecting a yum.YumBase object. This doesn't become evident until DepSolver.setup() is called, whereupon the stack trace listed below obtains.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Attempt to resolve the dependencies of a package:
from pulp.client.api import server
from pulp.client.api.service import ServiceAPI
from pulp.client.consumer.config import ConsumerConfig
from pulp.client.admin.credentials import Login as LoginBundle
config = ConsumerConfig()
pulpserver = server.PulpServer(config.server['host'],
bundle = LoginBundle()
sapi = ServiceAPI()
sapi.dependencies(["perl"], ["centos-5-x86_64-os"], recursive=1)
AttributeError: DepSolver instance has no attribute '_override_sigchecks'
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/controllers/decorators.py", line 48, in report_error
return method(self, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/controllers/decorators.py", line 127, in _auth_decorator
value = method(self, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/pulp/server/webservices/controllers/services.py", line 72, in POST
return self.ok(papi.package_dependency(data[\'pkgnames\'], data[\'repoids\'], recursive=recursive))
File "/usr/lib/python2.6/site-packages/pulp/server/api/package.py", line 241, in package_dependency
dsolve = DepSolver(repos, pkgnames)
File "/usr/lib/python2.6/site-packages/pulp/server/api/depsolver.py", line 38, in __init__
File "/usr/lib/python2.6/site-packages/pulp/server/api/depsolver.py", line 49, in setup
File "/usr/lib/python2.6/site-packages/yum/repos.py", line 113, in add
repoobj._override_sigchecks = self.ayum._override_sigchecks
Ugly dependency list.
Patch attached. This at least appears to fix this exact bug, although I've been getting sporadic stack traces of a different nature with it. That might be user error, though.
This issue is actually fixed in yum itself. The RepoStorage object is fixed to handle _override_sigchecks. Its waiting on getting upstream in fedora and RHEL-6. We dont want to load the YumBase in pulp's depsolver as that will initialize and load the locally enabled repos from /etc/yum.repo.d which will skew the dep results. Here we only want to load the repos from pulp that were passed and resolve them on the fly.
If this is blocking you, you can grab yum and createrepo from fedora-rawhide, which has this fix. I'm working with yum maintainer to get this upstream asap.
actually setting it to 'Modified', as its still not live. We'll re-qa it once yum patch is upstream and move it to closed.
fix is in yum-3.2.29-9.fc15.noarch.rpm
[root@preethi ~]# rpm -q yum
It looks like this fix did not get into RHEL 6.2, so I'm stuck waiting for RHEL 6.3. That's a long wait for a fairly major piece of functionality in Pulp. Any chance we could get a workaround for this Yum bug, as the Yum maintainers don't seem particularly motivated to fix it on their end? Thanks.
As per 727574 it looks like its ack'ed for 6.2 and verified not sure why it missed, I'll check on this.
Pulp v1.0 is released
Closed Current Release.
Pulp v1.0 is released.