From 428a647bdc5341a3d1c5bd5e22bfc4dc2d96a10f Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov <dmitriy.rabotyagov@cleura.com> Date: Sat, 25 May 2024 15:38:03 +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: If92f81bee0ffd3556e1b1e1f26e7572af04ff1b2 --- templates/trove-guestagent.conf.j2 | 3 +++ templates/trove.conf.j2 | 3 +++ 2 files changed, 6 insertions(+) diff --git a/templates/trove-guestagent.conf.j2 b/templates/trove-guestagent.conf.j2 index 7eead53..a1654d2 100644 --- a/templates/trove-guestagent.conf.j2 +++ b/templates/trove-guestagent.conf.j2 @@ -35,6 +35,9 @@ rabbit_quorum_queue = {{ trove_guest_oslomsg_rabbit_quorum_queues }} rabbit_transient_quorum_queue = {{ trove_guest_oslomsg_rabbit_transient_quorum_queues }} rabbit_qos_prefetch_count = {{ trove_guest_oslomsg_rabbit_qos_prefetch_count }} use_queue_manager = {{ trove_guest_oslomsg_rabbit_queue_manager }} +{% if trove_guest_oslomsg_rabbit_queue_manager %} +hostname = {{ [ansible_facts['hostname'], 'guest', trove_service_name] | join('-') }} +{% endif %} rabbit_stream_fanout = {{ trove_guest_oslomsg_rabbit_stream_fanout }} rabbit_quorum_delivery_limit = {{ trove_oslomsg_rabbit_quorum_delivery_limit }} rabbit_quorum_max_memory_bytes = {{ trove_oslomsg_rabbit_quorum_max_memory_bytes }} diff --git a/templates/trove.conf.j2 b/templates/trove.conf.j2 index 76c8f8c..d8e4676 100644 --- a/templates/trove.conf.j2 +++ b/templates/trove.conf.j2 @@ -130,6 +130,9 @@ rabbit_quorum_queue = {{ trove_oslomsg_rabbit_quorum_queues }} rabbit_transient_quorum_queue = {{ trove_oslomsg_rabbit_transient_quorum_queues }} rabbit_qos_prefetch_count = {{ trove_oslomsg_rabbit_qos_prefetch_count }} use_queue_manager = {{ trove_oslomsg_rabbit_queue_manager }} +{% if trove_oslomsg_rabbit_queue_manager %} +hostname = {{ [ansible_facts['hostname'], trove_service_name] | join('-') }} +{% endif %} rabbit_stream_fanout = {{ trove_oslomsg_rabbit_stream_fanout }} rabbit_quorum_delivery_limit = {{ trove_oslomsg_rabbit_quorum_delivery_limit }} rabbit_quorum_max_memory_bytes = {{ trove_oslomsg_rabbit_quorum_max_memory_bytes }}