From 341ae3b475f9aab85c9202995529b1d041a71b2b Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 12 Jun 2012 17:17:13 -0400 Subject: Add missing ack to impl_qpid. Fix bug 1012374. Johannes Erdfelt pointed out that impl_qpid wasn't acking messages that it received. This turned out to be a nasty oversight, resulting in unbounded message queue growth inside of the python-qpid library. This fixes it. Change-Id: I446530239e16701009c4db8407a344596bb17952 --- openstack/common/rpc/impl_qpid.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'openstack/common/rpc') diff --git a/openstack/common/rpc/impl_qpid.py b/openstack/common/rpc/impl_qpid.py index 3c46309..78236f2 100644 --- a/openstack/common/rpc/impl_qpid.py +++ b/openstack/common/rpc/impl_qpid.py @@ -138,7 +138,12 @@ class ConsumerBase(object): def consume(self): """Fetch the message and pass it to the callback object""" message = self.receiver.fetch() - self.callback(message.content) + try: + self.callback(message.content) + except Exception: + logging.exception(_("Failed to process message... skipping it.")) + finally: + self.session.acknowledge(message) def get_receiver(self): return self.receiver -- cgit