diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py index 94506dca8..88001e17d 100644 --- a/oslo_messaging/_drivers/impl_rabbit.py +++ b/oslo_messaging/_drivers/impl_rabbit.py @@ -558,14 +558,6 @@ class Consumer: 'Queue: [%(queue)s], ' 'error message: [%(err_str)s]', info) time.sleep(interval) - if self.queue_arguments.get('x-queue-type') == 'quorum': - # Before re-declare queue, try to delete it - # This is helping with issue #2028384 - # NOTE(amorin) we need to make sure the connection is - # established again, because when an error occur, the - # connection is closed. - conn.ensure_connection() - self.queue.delete() self.queue.declare() else: raise @@ -608,24 +600,6 @@ class Consumer: nowait=self.nowait) else: raise - except amqp_ex.InternalError as exc: - if self.queue_arguments.get('x-queue-type') == 'quorum': - # Before re-consume queue, try to delete it - # This is helping with issue #2028384 - if exc.code == 541: - LOG.warning('Queue %s seems broken, will try delete it ' - 'before starting over.', self.queue.name) - # NOTE(amorin) we need to make sure the connection is - # established again, because when an error occur, the - # connection is closed. - conn.ensure_connection() - self.queue.delete() - self.declare(conn) - self.queue.consume(callback=self._callback, - consumer_tag=str(tag), - nowait=self.nowait) - else: - raise def cancel(self, tag): LOG.trace('ConsumerBase.cancel: canceling %s', tag) diff --git a/releasenotes/notes/avoid-quorum-deletion-ec5fede2d4ecb001.yaml b/releasenotes/notes/avoid-quorum-deletion-ec5fede2d4ecb001.yaml new file mode 100644 index 000000000..efe7d4c1e --- /dev/null +++ b/releasenotes/notes/avoid-quorum-deletion-ec5fede2d4ecb001.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Avoid deleting RabbitMQ ``quorum`` queues if they are failing on server + side with ``Internal Server Error`` (error ``541``).