Pulp celery stack conflicts with epel versions

With pulp 2.18.1 GA, pulp’s celery stack dependencies now explicitly conflict with the versions in epel. This has repercussions in katello/foreman as well, any time an upgrade happens.

This was done because of [0], which was causing issues with certain aspects of pulp server due to regressions in celery 4.2.

We’ve attempted a few ways to solve the issue, and landed in the state we are in, causing big ugly conflicts when you install/upgrade packages without intervention. This seemed to be the most effective way to both prevent a bad state, and to convey to the end user of the bad state.

To get around this the following packages need to be excluded from epel somehow:

python-celery
python-kombu
python-amqp
python-vine

People have had success with excluding those packages explicitly from epel.

You can also install yum-plugin-priorities and set priorty=2 for pulp’s repo (or any number less than 99, the default priority) and it will pull any packages in pulp’s repo over others instead.

[0] https://www.redhat.com/archives/pulp-list/2019-February/msg00002.html

We’ve had similar issues in the past and updated the katello-repos rpm
to require yum-priorities and set the priority automatically. I think
we need to do this again otherwise every user is going to hit this.

Justin

Pulp is changing their strategy for handling this issue by setting a high epoch to ensure the pulp rpms win out in all cases.

This should be out soon, sometime today hopefully. Will update here when it’s public

These bits have been pushed live

Looks like this fix is possibly not working properly for katello nightlies, which are failing with the following error:

Traceback (most recent call last):
  File "/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 375, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 239, in main
    (result, resultmsgs) = base.buildTransaction()
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1198, in buildTransaction
    (rescode, restring) = self.resolveDeps()
  File "/usr/lib/python2.7/site-packages/yum/depsolve.py", line 893, in resolveDeps
    CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
  File "/usr/lib/python2.7/site-packages/yum/depsolve.py", line 1025, in _resolveRequires
    (checkdep, missing, errormsgs) = self._processReq(po, dep)
  File "/usr/lib/python2.7/site-packages/yum/depsolve.py", line 350, in _processReq
    CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
  File "/usr/lib/python2.7/site-packages/yum/depsolve.py", line 703, in _requiringFromTransaction
    pkgresults = self._compare_providers(pkgs, requiringPo,req=needname)
  File "/usr/lib/python2.7/site-packages/yum/depsolve.py", line 1618, in _compare_providers
    bestnum = max(pkgresults.values())
ValueError: max() arg is an empty sequence

@tbrisker This appears to be an issue with me not propagating the entire fix from 2.18 to the master branch of pulp-packaging, as we were more focused on fixing the 2.18 stale repos.

This should be resolved now for nightly as well, and apologies for the hiccups.

1 Like