Bug 1029067 - python-celery has a runtime requirement on python-billiard < 3.0, but the spec file does not require any particular version of billiard
python-celery has a runtime requirement on python-billiard < 3.0, but the spe...
Product: Fedora
Classification: Fedora
Component: python-celery (Show other bugs)
x86_64 Linux
unspecified Severity high
: ---
: ---
Assigned To: Matthias Runge
Fedora Extras Quality Assurance
: Triaged
Depends On:
  Show dependency treegraph
Reported: 2013-11-11 10:29 EST by Randy Barlow
Modified: 2014-01-17 15:24 EST (History)
6 users (show)

See Also:
Fixed In Version: python-kombu-2.5.16-1.fc20
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2014-01-17 00:45:40 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Randy Barlow 2013-11-11 10:29:50 EST
Description of problem:
I installed python-celery, but I cannot start celeryd because it has a runtime dependency on python-billiard, ensuring that <3.0 is installed. The Celery spec file should explicitly require billiard < 3.0, so as to avoid this problem.

Version-Release number of selected component (if applicable):
$ rpm -qa | grep cel
$ rpm -qa | grep bill

How reproducible:

Steps to Reproduce:
1. yum install python-celery
2. celeryd

Actual results:
$ celeryd
Traceback (most recent call last):
  File "/usr/bin/celeryd", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2809, in <module>
    parse_requirements(__requires__), Environment()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 594, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: billiard>=,<3.0

Expected results:
Installing Celery should require billiard < 3.0 explicitly, instead of requiring any version of billiard.
Comment 1 Christopher Beland 2013-11-18 15:22:56 EST
Also present in Fedora 20 beta (python-celery-3.0.19-4.fc20.noarch).
Comment 2 Matthias Runge 2013-11-21 05:04:19 EST
Randy or Christopher,

sadly, I don't have currently a real testcase. May I ask you to try the following RPM?
(basically, I nuked the runtime-checks, since deps are handled via rpm)

SRPM is here:

If that works, I'd push that to f19, f20 to solve this annoying issue, which I fixed for f21.
Comment 3 Randy Barlow 2013-11-21 10:26:38 EST
I don't have an F20 installation at the moment to try that package out there, and it appears that I don't have a new enough version of Kombu in F19:

Error: Package: python-celery-3.0.19-5.fc20.noarch (/python-celery-3.0.19-5.fc20.noarch)
           Requires: python-kombu >= 2.5.10
           Installed: python-kombu-2.5.8-1.fc19.noarch (@fedora)
               python-kombu = 2.5.8-1.fc19

I didn't take a look in the src RPM, but I am curious whether you added the <3.0 requirement to the src RPM? I believe that Celery developers intentionally put the check on billiards being under version 3, and so eliminating the check may lead to problems with Celery.

Respectfully, I would like to suggest that we should not get rid of the runtime-checks that the Celery developers put into place, as those checks helped us realize our library compatibility problems.

Thank you!
Comment 4 Michael Hrivnak 2013-11-21 10:38:45 EST
I'd like to second Randy's suggestion that the runtime check not be removed, unless we have confirmation from the upstream project that celery will work with a newer version of billiard. If we do have such confirmation I would like to see a revised Requires declaration on the RPM that expresses what versions of billiard have been certified to work with this version of celery.

One way or another, we need to have confidence that 1) the versions of celery and billiard in F19 will definitely work together, and 2) that if celery does limit the versions we can use, that the limitation is enforced (preferably by the RPM).
Comment 5 Randy Barlow 2013-11-21 10:48:55 EST
I had forgotten that I could just query the RPM for the answer to my question above. It looks like the RPM does not have the requirement on billiard<3.0:

$ rpm -qR -p python-celery-3.0.19-5.fc20.noarch.rpm
python(abi) = 2.7
python-kombu >= 2.5.10
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
Comment 6 Fedora Update System 2014-01-08 06:18:15 EST
python-kombu-2.5.16-1.fc20,python-celery-3.0.19-5.fc20,python-billiard- has been submitted as an update for Fedora 20.
Comment 7 Fedora Update System 2014-01-08 06:57:28 EST
python-kombu-2.5.16-1.fc19,python-celery-3.0.15-4.fc19,python-billiard- has been submitted as an update for Fedora 19.
Comment 8 Fedora Update System 2014-01-09 02:37:02 EST
Package python-kombu-2.5.16-1.fc20, python-celery-3.0.19-5.fc20, python-billiard-
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-kombu-2.5.16-1.fc20 python-celery-3.0.19-5.fc20 python-billiard-'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
Comment 9 Randy Barlow 2014-01-09 14:48:00 EST
I can also confirm that the Celery RPM now has the correct requires:

$ rpm -q --requires python-celery | grep billiard
python-billiard >= 1:
python-billiard < 1:3.0

Looks great, thanks for the fix!
Comment 10 Fedora Update System 2014-01-17 00:45:40 EST
python-kombu-2.5.16-1.fc19, python-celery-3.0.15-4.fc19, python-billiard- has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 11 Fedora Update System 2014-01-17 00:48:55 EST
python-kombu-2.5.16-1.fc20, python-celery-3.0.19-5.fc20, python-billiard- has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 12 zkatsuragi 2014-01-17 15:24:21 EST
I tried in fedora 19 today and still have the issue installing celery
# yum install python-celery
---> Package python-celery.noarch 0:3.0.15-4.fc19 will be installed
--> Finished Dependency Resolution
Error: Package: python-celery-3.0.15-4.fc19.noarch (updates)
           Requires: python-billiard > 1:
           Installed: 1:python-billiard- (@updates)
               python-billiard = 1:
           Available: python-billiard- (fedora)
               python-billiard =

# rpm -qa | grep billiard

Note You need to log in before you can comment on or make changes to this bug.