Project

Profile

Help

Task #3407

closed

Upgrade the Celery stack that Pulp ships on EL7 to Celery + Kombu 4.x

Added by dalley about 6 years ago. Updated about 5 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Start date:
Due date:
% Done:

0%

Estimated time:
Platform Release:
2.16.0
Target Release - Packaging:
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

Description

Celery 3.x is EOL, and has a couple of known issues which are not resolvable without some very risky backports. Additionally, Pulp is currently supporting both Celery 3.x and 4.x, resulting in double the testing load when we come across an issue relating to Celery.

Fedora has been shipping Celery 4.x for several months, ever since the release of Fedora 26 last year. Thus, we know Pulp is fairly stable with these versions of the dependencies.

I propose that we upgrade the carried versions of Celery, Kombu, and their dependencies to the ones currently being shipped in Fedora 27.

The full list of packages to build is:

  • python-celery 4.0.2-3 (will change pending below changes)
  • python-kombu 4.0.2-8 (will change pending below changes)
  • python-amqp 2.2.2-1
  • python-billiard 3.5.0.3-1
  • python-vine 1.1.3-3
Actions #1

Updated by bmbouter about 6 years ago

  • Subject changed from Upgrade the Celery stack that Pulp uses on RHEL/CentOS to Celery + Kombu 4.x to Upgrade the Celery stack that Pulp ships on EL7 to Celery + Kombu 4.x

I'm +1 to this, but I wrote some questions and ideas here:

1. Do you also want the pulp spec file to depend on celery>=4.0 and remove the celery 3.x legacy codepaths? I think we should because with this change we are officially dropping celery/kombu 3 support. If so can it be added in here as the dev part of this ticket?

2. Can pcreech or @ehelms comment on if they can build these things for EL7 and distribute them with the Pulp2 bits?

+1 to applying the patch for #2927 to the Fedora builds.

For the patch for #2927, and the other packaging updates, can we remove those from this ticket and create a bug for each in Fedora's issue tracker. It's made for packaging issues like this. Filing it there would let the package maintainer hopefully fix it. Here are the celery and kombu packaging tracker links:

https://apps.fedoraproject.org/packages/python-celery/bugs/
https://apps.fedoraproject.org/packages/python-kombu/bugs/

Any questions or ideas are welcome. Thanks for bringing this up!

Actions #2

Updated by dalley about 6 years ago

re: Fedora issue tracker, sure, I will do that

Actions #3

Updated by dalley about 6 years ago

FYI, I found a currently-open bz to get these versions of these packages into EPEL

https://bugzilla.redhat.com/show_bug.cgi?id=1492699

I would assume that gives us two courses of action, either go ahead and do the work ourselves, but let upstream know so that they can piggyback off of it, or the reverse, we help get it sorted out upstream and then pull in those packages to distribute ourselves for non-users of EPEL.

(Either way, I think getting it done would require our involvement, so I'm not sure the distinction matters much, and choice #1 is my preference)

Actions #5

Updated by bmbouter about 6 years ago

dalley thank you for breaking out the Fedora stuff into those other tickets, that looks resolved. What about removing the 3.0 codepaths altogether? I added two checklist items assuming the answer is yes.

I'm +1 to grooming this after the build team acks it.

pcreech, @ehelms: Can you upgrade the stack as described here for 2.16? Also would you want to get it into EPEL (see comment 3) or self-distribute via fedorapeople in the long term? In the near tearm I think we have to self-distribute because upgrading EPEL would take a long time at least.

Actions #6

Updated by pcreech about 6 years ago

Given current workload, I think it's more prudent to get this into pulp-packaging than pursuing the epel route ourselves. If at such time it is added in to epel we can stop shipping it. But there have been many times where we needed to update the version or backport a fix ourselves in the past anyways, which also leans me towards the upstream route instead of epel.

There's mentioning of patching the builds here as well... Do we need to makes sure the changes get propogated, or are we going to update to a newer celery version with the fix for the builds we control?

Actions #7

Updated by dalley about 6 years ago

Well, unfortunately there isn't an official celery release yet which includes that fix. The most current release is 4.1.0, which was released prior to our patch being merged. However, they have offered Brian the opportunity to create a 4.1.1 release, so it remains an option.

edit: I asked the Celery developers if they have a timeline for a new release - apparently 4.2 is being released fairly soon, only one blocker left.

My thought was that it's probably better to stick with what is in Fedora for now, since that has been tested the most thoroughly. I'm not sure where using a very new release would fall in terms of risk management for downstream. I'm open to the idea of using a newer release mostly because it looks like there are almost no new features in 4.1 and 4.2 and a lot of bugfixes, some of which at a glance might be relevant.

@Brian, what are your thoughts?

Let's say Celery 4.2 gets released within the next month. I think we would want to minimize downstream risk as much as possible by making sure Pulp 2.16 would be using this code. What is Fedora's policy on updating packages like that within a release? Would their guidelines prohibit upgrading those packages significantly in a released version? If yes, we would have to vendor those packages ourselves for Fedora on top of EL7. I'm not sure how we feel about that.

I will sit down at some point and take a look through the bugfixes in the changelog to try to figure out how worthwhile such an upgrade would be

Actions #8

Updated by pcreech about 6 years ago

I'm on board with taking the spec in the latest fedora, and building that and applying patches. Just wanted to make sure I knew what would be needed by releng

Actions #9

Updated by bmbouter about 6 years ago

+1 to self-distributing EL7 and not pursuing the EPEL route. ty pcreech for the comment.

For the risk reasons dalley mentions, I'm +1 on using the existing versions in Fedora + the patch from https://pulp.plan.io/issues/2927

dalley, Fedora can put any version in Rawhide prior to the branch point. I suspect we should just let Rawhide upgrade naturally after upstream Kombu 4.2 is released. For risk reasons, EL7 should lag relatively far behind so I don't think we should upgrade from celery/kombu 4.z+patches to celery/kombu 4.2 for a few months after 4.2 is out at least.

Actions #10

Updated by dalley about 6 years ago

All of that sounds good to me.

Actions #11

Updated by pcreech about 6 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to pcreech
Actions #12

Updated by pcreech about 6 years ago

  • Project changed from Pulp to Packaging
  • Status changed from ASSIGNED to POST

Added by pcreech about 6 years ago

Revision f74b3946 | View on GitHub

Update celery stack to v4

Update celery stack to v4 so we no longer have to maintain code for both 3 and 4

closes #3407 https://pulp.plan.io/issues/3407

Added by pcreech about 6 years ago

Revision f74b3946 | View on GitHub

Update celery stack to v4

Update celery stack to v4 so we no longer have to maintain code for both 3 and 4

closes #3407 https://pulp.plan.io/issues/3407

Actions #13

Updated by pcreech about 6 years ago

  • Status changed from POST to MODIFIED
Actions #14

Updated by ttereshc about 6 years ago

  • Platform Release set to 2.16.0
Actions #15

Updated by bmbouter about 6 years ago

  • Status changed from MODIFIED to 5
Actions #16

Updated by bmbouter about 6 years ago

  • Status changed from 5 to CLOSED - CURRENTRELEASE
Actions #17

Updated by bmbouter about 5 years ago

  • Tags Pulp 2 added

Also available in: Atom PDF