<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openstack/kolla-ansible.git/ansible/roles/rabbitmq/tasks/precheck.yml, branch stable/2026.1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.platform-os.org/openstack/kolla-ansible.git/atom?h=stable%2F2026.1</id>
<link rel='self' href='https://git.platform-os.org/openstack/kolla-ansible.git/atom?h=stable%2F2026.1'/>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/'/>
<updated>2026-09-08T13:48:29+00:00</updated>
<entry>
<title>rabbitmq: fix precheck missing backend TLS cert fallback</title>
<updated>2026-09-08T13:48:29+00:00</updated>
<author>
<name>Franciszek Przewozny</name>
<email>przewozny.franciszek@gmail.com</email>
</author>
<published>2026-09-01T13:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=022c6f1a12ebbbdeab4186fc22b4e30d00cf0b3d'/>
<id>urn:sha1:022c6f1a12ebbbdeab4186fc22b4e30d00cf0b3d</id>
<content type='text'>
service-cert-copy falls back to kolla_tls_backend_cert/key when no
rabbitmq-specific cert is found, but the precheck did not check for
this path, causing a false failure when relying on the shared
backend certificate.

Closes-Bug: #2166283
Change-Id: I75d4b33fc893bcf0793c1280981574bcdf3f3002
Signed-off-by: fprzewozn &lt;przewozny.franciszek@gmail.com&gt;
(cherry picked from commit a54ad717f08a8258424004e6224a36ea561393d2)
</content>
</entry>
<entry>
<title>Make RabbitMQ stream retention policy configurable</title>
<updated>2026-04-24T08:21:14+00:00</updated>
<author>
<name>Seunghun Lee</name>
<email>seunghun@stackhpc.com</email>
</author>
<published>2025-06-25T10:09:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=1b42101d82d716387af9c970e4573f766579f7f6'/>
<id>urn:sha1:1b42101d82d716387af9c970e4573f766579f7f6</id>
<content type='text'>
When fanout queues are set to be RabbitMQ stream, number of ready
messages in stream queues grow large.
This is because retention policy of stream is only applied when stream
segments hit the maximum size.

This change make the maximum size of RabbitMQ stream segment and the
retention time configurable by new variables
``rabbitmq_stream_max_segment_size_bytes`` and
``rabbitmq_stream_segment_max_age`` respectively.

NOTE: These are only applied when ``om_enable_rabbitmq_stream_fanout``
is set to ``true``.

Change-Id: Iade5e525f0de8981a0e03e3340ad7552c2f40121
Signed-off-by: Seunghun Lee &lt;seunghun@stackhpc.com&gt;
</content>
</entry>
<entry>
<title>ansible-lint: Fix fqcn[actions-core] for rabbitmq</title>
<updated>2026-03-23T17:05:12+00:00</updated>
<author>
<name>Michal Nasiadka</name>
<email>mnasiadka@gmail.com</email>
</author>
<published>2026-03-23T09:52:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=3cd725de5ea8e476199203699d4ebc604f156d70'/>
<id>urn:sha1:3cd725de5ea8e476199203699d4ebc604f156d70</id>
<content type='text'>
Change-Id: I1285f9c00829a7d64851c16a7222985eabdc06ef
Signed-off-by: Michal Nasiadka &lt;mnasiadka@gmail.com&gt;
</content>
</entry>
<entry>
<title>ansible-lint: fix unnamed-task in rabbitmq</title>
<updated>2025-12-10T21:19:49+00:00</updated>
<author>
<name>Bertrand Lanson</name>
<email>bertrand.lanson@protonmail.com</email>
</author>
<published>2025-12-10T20:49:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=8d1f61a72b21c42c174710c3de545bea2339b071'/>
<id>urn:sha1:8d1f61a72b21c42c174710c3de545bea2339b071</id>
<content type='text'>
Change-Id: I267662b8ecc0d8a833d92983f40de1f5c78d1bcd
Signed-off-by: Bertrand Lanson &lt;bertrand.lanson@protonmail.com&gt;
</content>
</entry>
<entry>
<title>ansible-lint: Remove key-order[task] exclude</title>
<updated>2025-11-17T10:53:10+00:00</updated>
<author>
<name>Michal Nasiadka</name>
<email>mnasiadka@gmail.com</email>
</author>
<published>2025-11-12T12:48:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=95ae6b73361aa0c7da98aaed5fc2bc3349420418'/>
<id>urn:sha1:95ae6b73361aa0c7da98aaed5fc2bc3349420418</id>
<content type='text'>
Change-Id: I77cce57f3f2b05455e8bd4e7093081ef4ed25d59
Signed-off-by: Michal Nasiadka &lt;mnasiadka@gmail.com&gt;
</content>
</entry>
<entry>
<title>Don't allow quorum queues to be disabled</title>
<updated>2025-04-09T14:20:59+00:00</updated>
<author>
<name>Matt Crees</name>
<email>mattc@stackhpc.com</email>
</author>
<published>2025-02-04T11:19:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=50bbcb09d0d7cbff5858a9b8b416838ef25d1d1f'/>
<id>urn:sha1:50bbcb09d0d7cbff5858a9b8b416838ef25d1d1f</id>
<content type='text'>
We will be upgrading RabbitMQ to version 4.0 in Epoxy. This will not
work without quorum queues being enabled.

Change-Id: Ic6ad64bf8c62bbff175e15029eb121814032c40e
</content>
</entry>
<entry>
<title>Remove om_enable_rabbitmq_high_availability</title>
<updated>2025-04-03T08:02:34+00:00</updated>
<author>
<name>Matt Crees</name>
<email>mattc@stackhpc.com</email>
</author>
<published>2025-02-04T11:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=8f0a4f6726532de376f5371ecdcc8f18505ba33d'/>
<id>urn:sha1:8f0a4f6726532de376f5371ecdcc8f18505ba33d</id>
<content type='text'>
We're going to upgrade RabbitMQ to 4.0, so this option will not longer
be supported.

Change-Id: Ide75a8c9086798bf4bdf5bc02d4a1be17017884f
</content>
</entry>
<entry>
<title>rabbitmq: Add support for using stream queues for fanout</title>
<updated>2025-04-02T10:59:07+00:00</updated>
<author>
<name>Michal Nasiadka</name>
<email>mnasiadka@gmail.com</email>
</author>
<published>2024-04-24T14:11:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=4614aad4cca8fce4c17f2f2cbba11bbd458a3d3f'/>
<id>urn:sha1:4614aad4cca8fce4c17f2f2cbba11bbd458a3d3f</id>
<content type='text'>
The global configuration of rabbit_qos_prefetch_count = 1
in oslo.messaging is a deliberate choice that balances
compatibility, fairness, and reliability across all
OpenStack services.

While some services (particularly those using quorum queues)
could theoretically benefit from a higher or even unlimited
prefetch count for performance reasons, this is not universally
safe. Specifically, RabbitMQ stream queues - which are used in
certain OpenStack components do not support a prefetch_count of
0. Setting this value to 0 would result in runtime errors
or stalls, as the stream protocol requires a positive credit
window to function properly. Oslo.messaging enforces this by
raising an error if prefetch_count = 0 is set while using stream
queues.

A value of 1 is the lowest legal and universally compatible
setting. It works safely with both stream and quorum queues.
It also improves fairness in message distribution across worker
processes. In distributed services like Nova, Neutron, or
Cinder, this helps avoid uneven load where one worker might
prefetch many messages while others remain idle.
A low prefetch count ensures that messages are pulled only
when the worker is ready, promoting better load balancing and
more predictable performance.

Although a higher prefetch value could increase throughput in
certain scenarios, it comes at the cost of memory usage, risk
of overloading specific nodes, and potential starvation of
others. Until oslo.messaging supports queue-type-specific or
per-service tuning, the value of 1 remains the safest and
most predictable option that works well in mixed OpenStack
environments.

In summary, rabbit_qos_prefetch_count = 1 is not about
optimizing raw throughput for any one service, but about
ensuring stable, fair, and reliable behavior across all
services that rely on oslo.messaging, regardless of the queue
type or broker backend used.

Change-Id: I541f704bfa2e98068096331afbdb591659cbc40b
</content>
</entry>
<entry>
<title>Rabbitmq: enable quorum for transient queues</title>
<updated>2025-03-27T08:35:35+00:00</updated>
<author>
<name>Sven Kieske</name>
<email>kieske@osism.tech</email>
</author>
<published>2024-08-29T11:51:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=3c3a18aa5b2f0228d489566bb255912c0f0e3892'/>
<id>urn:sha1:3c3a18aa5b2f0228d489566bb255912c0f0e3892</id>
<content type='text'>
This helps to improve the reliability of openstack services when
a rabbitmq node has issues.

See also: https://bugs.launchpad.net/oslo.messaging/+bug/2031497

Adjust the upgrade tests similar to what was done
during the introduction of quorum queues in I6c033d460a5c9b93c346e9e47e93b159d3c27830

Closes-Bug: #2078339
Partial-Bug: #2077448
Depends-On: https://review.opendev.org/c/openstack/oslo.messaging/+/888479
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/924623
Signed-off-by: Sven Kieske &lt;kieske@osism.tech&gt;
Change-Id: Idb8a8d2e560206f7697c0771c9ae3913268fa6dd
</content>
</entry>
<entry>
<title>Add oslo.messaging Queue Manager</title>
<updated>2025-03-24T09:17:25+00:00</updated>
<author>
<name>Michal Arbet</name>
<email>michal.arbet@ultimum.io</email>
</author>
<published>2024-07-17T01:05:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=4e0c0aa767d993026dbd927e3dca98f17fed7895'/>
<id>urn:sha1:4e0c0aa767d993026dbd927e3dca98f17fed7895</id>
<content type='text'>
Adds the variable ``om_enable_queue_manager`` to configure enabling
oslo.messaging Queue Manager for all services which use RabbitMQ. This
is enabled by default.

This is required before we can move away from transient queues
(``rabbit_transient_quorum_queue``) as Queue Manager is needed to avoid
consuming all erlang atoms after some time. It is also a useful feature
for debugging, as queues are now named with hostnames and services
included.

Also setting ``lock_path`` and mounting ``dev/shm`` is dependent on
``om_enable_queue_manager``, these are now enabled too. This will allow
us to backport these features to Caracal and Dalamation without
enforcing the changes right away.

Why is -t added for exec commands?
When using Podman, behavior differs from Docker regarding exec
commands. If -t (which allocates a pseudo-terminal) is not used, the
process runs as a child of podman exec without a PTY. This causes
Python inside the container to assign PGID=0 because the pseudo-terminal
is missing, leading to issues with non-existent paths like /proc/0/....
Adding -t ensures proper PGID assignment, preventing these issues and
ensuring consistent behavior across Docker and Podman.

Side-notes:
The quorum queue precheck needed to be updated as queue manager puts
"_fanout" on the end of the name instead.
We need to override the ``[oslo_messaging_rabbit] processname`` for
services running udner wsgi, as they will otherwise all use the same
processname ``mod_wsgi``. This will cause Permission Errors trying to
access the same file in shared memory as services run with different
users.

Change-Id: Iae5f268e778fbbd2b744dc71a84253ec9e758a99
</content>
</entry>
</feed>
