[Katello 2.4]: Foreman only lets you install/uninstall once only

In short, you need to restart goferd if you want to install/uninstall more
than once. I've seen lots of posts about this (or related) but no fix.

Steps

  1. Attempt package install using Foreman to a long running client.
  2. [Client] tcpdump and messages show no activity.
  3. Foreman reports (else if restarted more recently, you don't get this,
    the tasks just sits there polling):

Host did not respond within 20 seconds. The task has been cancelled. Is
katello-agent installed and goferd running on the Host?

  1. [client] /etc/init.d/goferd status shows 'running'

  2. strace of goferd shows:

[pid 11613] stat("/etc/pki/consumer/cert.pem", {st_mode=S_IFREG|0640,
st_size=1627, …}) = 0

[pid 11613] stat("/etc/yum.repos.d/redhat.repo", {st_mode=S_IFREG|0600,
st_size=5139, …}) = 0

[pid 11613] select(0, NULL, NULL, NULL, {1, 0} <unfinished …>

[pid 11614] <… select resumed> ) = 0 (Timeout)

<truncated>

  1. [client] /var/log/messages shows:

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - 'ConnectionClosed' object has no
attribute 'url'

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - Traceback (most recent call last):

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - File
"/usr/lib/python2.6/site-packages/gofer/messaging/adapter/model.py", line
39, in _fn

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - return fn(*args, **keywords)

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - File
"/usr/lib/python2.6/site-packages/gofer/messaging/adapter/model.py", line
842, in send

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - self._impl.send(address, signed, ttl)

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - File
"/usr/lib/python2.6/site-packages/gofer/messaging/adapter/proton/reliability.py",
line 44, in _fn

Jan 22 11:44:19 k-client-c6 goferd: [ERROR][worker-0]
gofer.messaging.adapter.model:43 - return fn(messenger, *args, **kwargs)

< snipped>

  1. [client] /etc/init.d/goferd restart

[ lots of good looking tcp traffic and messages ]

  1. Running install/uninstall tasks complete successful or a new task can be
    undertaken.
  2. Second install/uninstall task hangs again.

I'd be grateful for a solution. More than happy to capture data as needed.

Environment

Client RPM version(s):

katello-agent-2.4.0-3.el6.noarch

Server RPM versions:

candlepin-0.9.51.3-1.el6.noarch

candlepin-common-1.0.23-1.el6.noarch

candlepin-selinux-0.9.51.3-1.el6.noarch

candlepin-tomcat6-0.9.51.3-1.el6.noarch

katello-2.4.0-7.el6.noarch

katello-certs-tools-2.4.0-1.el6.noarch

katello-common-2.4.0-7.el6.noarch

katello-debug-2.4.0-7.el6.noarch

katello-default-ca-1.0-1.noarch

katello-installer-2.4.0-1.el6.noarch

katello-installer-base-2.4.0-1.el6.noarch

katello-repos-2.4.0-5.el6.noarch

katello-selinux-2.2.2-1.el6.noarch

katello-server-ca-1.0-1.noarch

katello-service-2.4.0-7.el6.noarch

libqpid-dispatch-0.4-10.el6.x86_64

m2crypto-0.21.1.pulp-7.el6.x86_64

mod_wsgi-3.4-2.pulp.el6.x86_64

katello-server-qpid-broker-1.0-1.noarch

katello-server-qpid-client-cert-1.0-1.noarch

katello-server-qpid-router-client-1.0-1.noarch

katello-server-qpid-router-server-1.0-1.noarch

pulp-admin-client-2.6.4-1.el6.noarch

pulp-docker-plugins-1.0.2-1.el6.noarch

pulp-katello-0.4-3.el6.noarch

pulp-nodes-common-2.6.4-1.el6.noarch

pulp-nodes-parent-2.6.4-1.el6.noarch

pulp-puppet-plugins-2.6.4-1.el6.noarch

pulp-puppet-tools-2.6.4-1.el6.noarch

pulp-rpm-plugins-2.6.4-1.el6.noarch

pulp-selinux-2.6.4-1.el6.noarch

pulp-server-2.6.4-1.el6.noarch

python-gofer-qpid-2.6.2-1.el6.noarch

python-isodate-0.5.0-4.pulp.el6.noarch

python-kombu-3.0.24-8.pulp.el6.noarch

python-pulp-bindings-2.6.4-1.el6.noarch

python-pulp-client-lib-2.6.4-1.el6.noarch

python-pulp-common-2.6.4-1.el6.noarch

python-pulp-docker-common-1.0.2-1.el6.noarch

python-pulp-puppet-common-2.6.4-1.el6.noarch

python-pulp-rpm-common-2.6.4-1.el6.noarch

python-qpid-0.30-7.el6.noarch

python-qpid-qmf-0.30-5.el6.x86_64

python-rhsm-1.8.0-2.pulp.el6.x86_64

qpid-cpp-client-0.30-7.proton.0.9.el6.x86_64

qpid-cpp-client-devel-0.30-7.proton.0.9.el6.x86_64

qpid-cpp-server-0.30-7.proton.0.9.el6.x86_64

qpid-cpp-server-linearstore-0.30-7.proton.0.9.el6.x86_64

qpid-dispatch-router-0.4-10.el6.x86_64

qpid-proton-c-0.9-2.el6.x86_64

qpid-qmf-0.30-5.el6.x86_64

qpid-tools-0.30-4.el6.noarch

rubygem-smart_proxy_pulp-1.0.1-2.el6.noarch

tfm-rubygem-hammer_cli_katello-0.0.18-3.el6.noarch

tfm-rubygem-katello-2.4.0-3.el6.noarch

tfm-rubygem-qpid_messaging-0.30.0-3.el6.x86_64