QPID Broken Default Configuration

Hi all,

I’ve just done another fresh install of Katello 3.5 and qdrouterd fails to start due to a bad configuration.

2018-01-14 23:22:56.581174 +0000 MAIN (critical) Router start-up failed: Python: Exception: Cannot load configuration file /etc/qpid-dispatch/qdrouterd.conf: No such entity type 'org.apache.qpid.dispatch.container'

It looks like this was deprecated in recent versions and removed entirely in 1.0.0, which is currently installed via the directions.

qpid-dispatch-router-1.0.0-1.el7.x86_64

Thanks!

I am having the same issue installing katello 3.5

is there any workaround?

Paging @katello to the booth … :wink:

I could workaround the issue by manually downgrading some rpms . Luckily we have a epel repo mirror where we don’t delete any file.

In case it helps for anyone else I have uploaded here is the list of rpms I had to downgrade: http://barrabin.org/katello-3.5-custom-rpms/

you can download all those rpms then do yum localinstall *rpm and use
"yum versionlock" ( https://www.systutorials.com/docs/linux/man/1-yum-versionlock/) to prevent those packages to be upgraded.

After this I can do yum install katello and then run the foreman-installer

It does appear that qpid 1.37.0 and qpid-dispatch 1.0.0 were pushed to EPEL via https://koji.fedoraproject.org/koji/buildinfo?buildID=1006825 and https://koji.fedoraproject.org/koji/buildinfo?buildID=1005258 breaking our setup.

I have reported the bug here http://projects.theforeman.org/issues/22289 a possible fix has already been published in https://github.com/theforeman/puppet-qpid/pull/83 (still untested)

We weren’t expecting 1.0 to hit EPEL so soon, I’ve begun working on updating the module for all the deprecations since 0.6, there’s a bunch.

2 Likes

Any estimate on when this is to be released, and for what versions. In desperate need of fixes for 3.2, and 3.4 of Katello. 3.5+ is not an option at this time for me. Any fresh installs of Katello any version would be broken state, due to qdrouterd-1.0.0-1.

The changes are merged, I’m not sure if we’ll get it backported to 3.4. You can probably take a copy of a working dispatch router configuration for 1.0 and drop it into 3.4 in /etc/qpid-dispatch, and things will run. I haven’t tested this, please report back if you get it working.

You’ll at least need to change the hostname in the router id, I think everything else is the same.

Note - The installer will overwrite it when it runs again, however.

2 Likes

Hello,

thank you for your File, it’s working with a fresh installed Katello 3.4.5.

I can also confirm, that I have this functional with 3.2 again, and 3.4 against 6000 systems.
Just pushed a content release for the month of February, and no issues reported. Thank god.

The issue of which I have in your statement, where its not being backported is troublesome. Not so much for my environment, but from an installation standpoint. The changes apparently haven’t been migrated yet into the repos for Katello.

The installation choices of Katello’s page, gives 3.3, 3.4, and 3.5 — of which out of the gate is broken.

Standing up 3.5 fresh, qdrouter is still broken — any timeframe on when this will be available.

Hey Daniel,

How did you manage to get the qdrouterd.conf file given above? I am new to katello and want to know what configurations (like hostname) you needed to change to get it to work?

Also, are you using katello to push content to hosts? If so can I get in touch with you with some questions. If you hang out in IRC, I can ping you :slight_smile:

Thanks,

Hi,
I tried to perform a yum downgrade for those packages but system returns me error. My katello version is 3.5 and I believe I’ll be waiting for a fix for this version.
Fabio

The file which Stephen Benjamin posted, will function. Although I only performed this operation to get my current site functional state again. While I believe that qpid-dispatch should be back ported to work with earlier version of the software available. ie: If the katello page has 3.3, 3.4, 3.5 available for download, then it should work out of the box.

To answer your question directly.

The only line required to be changed here is:

router {
id: hostname.example.com
mode: interior
worker-threads: 2
}

Daniel,
I tried to modify the file with those lines, but unfortunately it doesn’t work for me (without packages downgrade)

Hi Daniel,

So I did a fresh installation of katello 3.4. And replaced the qdrouterd.conf file as you suggested. However the service still fails. Can you take a look in this post to see if you can find anything?

Thanks,

Last Friday I did a fresh 3.4 install and was able to get everything working. I swapped out the etc/qpid-dispatch/qdrouterd.conf file and modified the following:
router {
id: katello.example.com <— insert your hostname here
mode: interior
worker-threads: 2
}
After changing the config, restart the service: systemctl restart qdrouterd

I also had an issue on hosts when installing katello-agent. The dependencies did not include python-gofer-qpid. Make sure this is also installed.

I modified the file but when restart service i still get error

qdrouterd[18488]: 2018-02-15 16:33:47.753055 +0100 ERROR (error) Python: Exception: Cannot load configuration file /etc/qpid-dispatch/qdrouterd.conf: No such entity type ‘org.apache.qpid.dispatch.container’

My 3.5 install is still having issues. I can only confirm this worked for me on 3.4.

Hi,

An updated 3.5.1 with this fixed should be released soon. Apologies for the delay. Its unlikely older versions will receive an update though. A workaround for 3.3, 3.4, 3.5.0 is to downgrade the qpid stack:

yum downgrade \
  https://kojipkgs.fedoraproject.org//packages/qpid-dispatch/0.8.0/1.el7/x86_64/qpid-dispatch-router-0.8.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-proton/0.17.0/4.el7/x86_64/qpid-proton-c-0.17.0-4.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-proton/0.17.0/4.el7/x86_64/python-qpid-proton-0.17.0-4.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/qpid-cpp-client-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/qpid-cpp-server-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/qpid-cpp-server-linearstore-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/python-qpid-qmf-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/qpid-cpp-client-devel-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/x86_64/qpid-qmf-1.36.0-1.el7.x86_64.rpm\
  https://kojipkgs.fedoraproject.org//packages/qpid-cpp/1.36.0/1.el7/noarch/qpid-tools-1.36.0-1.el7.noarch.rpm

And then simply restart all the services:

katello-service restart

I tested on a new 3.4 install and it appeared to work fine. If you’ve modified any config files, you may want to run:

katello-service stop
foreman-installer

to fix everything back up.

In addition, to keep these from being updated before the fix is in place for 3.5.1, I would recommend adding:

exclude=python-qpid* qpid*

to your epel repo config in /etc/yum.repos.d/epel.repo (you can also filter these out in your content view if publishing epel in katello).

4 Likes