From 0ce2bc01fd7e222bd7db1b95f338aeafaf291b36 Mon Sep 17 00:00:00 2001
From: Dmitriy Rabotyagov <dmitriy.rabotyagov@cleura.com>
Date: Sat, 25 May 2024 13:22:46 +0200
Subject: [PATCH] Define unique hostname for QManager

Due to the shortcoming of QManager implementation [1], in case of uWSGI
usage on metal hosts, the flow ends up with having the same
hostname/processname set, making services to fight over same file
under SHM.

In order to avoid this, we prepend the hostname with a service_name.
We can not change processname instead, since it will lead to the fight
between different processes of the same service.

[1] https://bugs.launchpad.net/oslo.messaging/+bug/2065922

Change-Id: I19484946c3049484f27e6e6029afd8152e1b835d
---
 templates/cinder.conf.j2 | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/templates/cinder.conf.j2 b/templates/cinder.conf.j2
index af7cda18..e225cdd7 100644
--- a/templates/cinder.conf.j2
+++ b/templates/cinder.conf.j2
@@ -132,6 +132,9 @@ rabbit_quorum_queue = {{ cinder_oslomsg_rabbit_quorum_queues }}
 rabbit_transient_quorum_queue = {{ cinder_oslomsg_rabbit_transient_quorum_queues }}
 rabbit_qos_prefetch_count = {{ cinder_oslomsg_rabbit_qos_prefetch_count }}
 use_queue_manager = {{ cinder_oslomsg_rabbit_queue_manager }}
+{% if cinder_oslomsg_rabbit_queue_manager %}
+hostname = {{ [ansible_facts['hostname'], cinder_service_name] | join('-') }}
+{% endif %}
 rabbit_stream_fanout = {{ cinder_oslomsg_rabbit_stream_fanout }}
 rabbit_quorum_delivery_limit = {{ cinder_oslomsg_rabbit_quorum_delivery_limit }}
 rabbit_quorum_max_memory_bytes = {{ cinder_oslomsg_rabbit_quorum_max_memory_bytes }}