Issues with qpid-proton due to 0.35.0 release in EPEL

There is the need to have a solution using pull instead of push in some environments, so removal has to wait until the pull-based provider for REX is ready and then there will be one release offering both options for an easier upgrade, but I am also happy when it is gone! :wink:

2 Likes

You are both correct: gofer and qpid are needed for katello-agent. It is indeed also deprecated, but there is no pull replacement. For actively reachable machines (using SSH) it is indeed entirely possible to avoid the issue that is now left. If you need to pull (other than with a cronjob or similar tools) there’s nothing to replace it yet.

1 Like

FWIW, I tried to build python2-qpid by reverting the change that dropped, and it seemed to work fine: Index of /evgeni/qpid-proton-0.35

Will talk together with @Justin_Sherrill to the qpid maintainers if they want to re-introduce the package.

1 Like

I’ve reached out to the QPID Team, so let’s see.

So Python2 is not supported in qpid-proton 0.35 (which I find totally understandable) and thus the build was disabled.
However, the qpid team operates a copr, which contains a 0.34 build that should also work with the 0.35 library. I’m currently running a CentOS7 pipeline with that copr enabled, but purely looking at the package metadata I tend to agree, this should work for us.

Now, waiting on the pipeline, I wonder how we should utilize and communicate this.

For our pipelines to work, it’d be sufficient to add the copr to the katello_repositories role we have, and stuff will turn green again.
But what about users? They’d need to enable that copr on every client system that is still using katello-agent. Is that “good enough” given katello-agent is technically deprecated?

@Justin_Sherrill @Jonathon_Turel et all, please speak up :slight_smile:

2 Likes

the pipeline changes are in https://github.com/theforeman/forklift/pull/1412, but seems it’s actually not working.

@Jonathon_Turel is looking into it.

It starts working once I do yum downgrade python36-qpid-proton-0.34.0-2.el7.x86_64 qpid-proton-c-0.34.0-2.el7.x86_64 https://yum.theforeman.org/katello/4.1/katello/el7/x86_64/tfm-rubygem-qpid_proton-0.34.0-3.el7.x86_64.rpm, but with 0.35 it seems Katello doesn’t talk to Qpid properly :frowning:

progress in https://github.com/Katello/katello/pull/9639

1 Like

And a bit of follow up on the python2-qpid side:

  • pipelines should now consume python2-qpid from the copr via https://github.com/theforeman/forklift/pull/1412
  • users consuming the foreman-release-client RPM will get the new repo there: nightly, 3.0, 2.5, 2.4
  • Katello users who mirror the repos locally, will need to include the copr in their content views – is this documented somewhere?

And for qpid_proton 0.35 itself:
Katello in nightly is now compatible with qpid_proton 0.35 via https://github.com/Katello/katello/pull/9639, but I’ve also opened https://github.com/Katello/katello/pull/9642 and https://github.com/Katello/katello/pull/9643 for two better solutions. Once the full path forward has been decided and tested, this will require backports to the supported stable branches.

Encountered this issue while updating 4.18, and was able to work around it by excluding the packages with yum update -x qpid-proton-c,qpid-dispatch-router

I have just noticed the new repository after updating foreman-client-release on my test client.

I am not using katello-agent anywhere, so it’s my understanding that I don’t need that repository, because qpid is not used. Correct?

And for the katello server itself it’s not necessary, either. Correct?

Correct.

If we don’t use katello-agent (we use subscription-manager on RHEL), is there a way to just remove the support from the foreman/katello server so qpid is no longer needed?

Using foreman-installer --foreman-proxy-enable-katello-agent false should disable it (Feature #32037: Disable katello-agent and infrastructure by default and allow users to enable it on new installs or disable it on upgrades - Installer - Foreman). That was released as part of foreman-installer-katello-2.5.0.

3 Likes

Maybe its foreman-installer -S katello --foreman-proxy-content-enable-katello-agent false
This works well, but qpid-proton still can’t uninstall because of dependency on katello and tfm-rubygem-katello package. (Foreman 2.5.3)

2 Likes

Hi all,

any news about this issue ?

Thanks

1 Like

This is my output:

# yum install katello-agent
..
...
--> Running transaction check
---> Package katello-agent.noarch 0:3.5.4-1.el7 will be installed
--> Processing Dependency: python-gofer-proton >= 2.5 for package: katello-agent-3.5.4-1.el7.noarch
--> Running transaction check
---> Package python-gofer-proton.noarch 0:2.12.5-3.el7 will be installed
--> Processing Dependency: python-qpid-proton >= 0.9-5 for package: python-gofer-proton-2.12.5-3.el7.noarch
--> Finished Dependency Resolution
Error: Package: python-gofer-proton-2.12.5-3.el7.noarch (Katello_agent_3_18_RHEL_7)
           Requires: python-qpid-proton >= 0.9-5
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************

Error: Package: python-gofer-proton-2.12.5-3.el7.noarch (Katello_agent_3_18_RHEL_7)
           Requires: python-qpid-proton >= 0.9-5
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

I figured I’d leave some notes on what worked for me if you find this thread in a similar situation as I found myself. I was trying to upgrade a long-neglected install standing at Foreman 1.23.2 and Katello 3.13.4. Very unsupported and no hope that docs would be updated with this detail as they are now archived as PDFs. Following the suggestion to update through each released version, one must do yum update (often!) but still get around the rpm dependencies that katello has with quid-proton 0.35.

Using the copr source mentioned above, I installed the 0.34 of quid-proton-c and python2-qpid-proton.
yum install -y https://download.copr.fedorainfracloud.org/results/@qpid/qpid/epel-7-x86_64/02783962-qpid-proton/qpid-proton-c-0.34.0-2.el7.x86_64.rpm
yum install -y https://download.copr.fedorainfracloud.org/results/@qpid/qpid/epel-7-x86_64/02783962-qpid-proton/python2-qpid-proton-0.34.0-2.el7.x86_64.rpm

I then ran updates following @rgp suggestion of using
yum update -x qpid-proton-c,qpid-dispatch-router

I’ve had successful updates through 1.24, 1.25, 2.0. Still working my way to 3.0.

Full disclosure, I’m no authority on if this breaks or harms the install or operation. I’m simply parsing these details and trying to get through an update process on unsupported versions that are still affected by this EPEL change but won’t likely get a fix.

Hey everyone,

I’m perfectly fine with removing the katello-agent and qpid packages on hosts as we use remote execution. But trying to remove the qpid packages on the foreman server references dependencies on katello packages. We are on Foreman 2.3.5 and Katello 3.18.3

@milanzelenka it sounds like you ran into this issue as well. Did you find a workaround?

@ehelms @ekohl have you got any news about this issue?

Thanks

1 Like