Add configuration option for heartbeat_in_pthread

This configuration option has been observed to result in file
descriptor leaks in certain circumstances. A variable is added
here so that it can be easily overridden.

Change-Id: I7de034307da9352e6f5d1f5f175a330fb8c86463
Related-Bug: #1961603
This commit is contained in:
Andrew Bonney 2022-03-11 08:48:16 +00:00
parent 559eb382b1
commit b1e38084cc
4 changed files with 14 additions and 0 deletions

View File

@ -117,6 +117,9 @@ nova_cell1_name: "cell1"
## Oslo Messaging
# RabbitMQ
nova_oslomsg_heartbeat_in_pthread: "{{ oslomsg_heartbeat_in_pthread | default(_nova_oslomsg_heartbeat_in_pthread) }}"
# RPC
nova_oslomsg_rpc_host_group: "{{ oslomsg_rpc_host_group | default('rabbitmq_all') }}"
nova_oslomsg_rpc_setup_host: "{{ (nova_oslomsg_rpc_host_group in groups) | ternary(groups[nova_oslomsg_rpc_host_group][0], 'localhost') }}"

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Fixes a file descriptor leak which may impact services which use the
oslo.messaging RabbitMQ heartbeat mechanism.

View File

@ -57,6 +57,10 @@ topics = {{ notification_topics | join(',') }}
driver = {{ (notification_topics | length > 0) | ternary('messagingv2', 'noop') }}
transport_url = {{ nova_oslomsg_notify_transport }}://{% for host in nova_oslomsg_notify_servers.split(',') %}{{ nova_oslomsg_notify_userid }}:{{ nova_oslomsg_notify_password }}@{{ host }}:{{ nova_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ nova_oslomsg_notify_vhost }}{% if nova_oslomsg_notify_use_ssl | bool %}?ssl=1&ssl_version={{ nova_oslomsg_notify_ssl_version }}&ssl_ca_file={{ nova_oslomsg_notify_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
# Messaging
[oslo_messaging_rabbit]
heartbeat_in_pthread = {{ nova_oslomsg_heartbeat_in_pthread }}
# Image cache
[image_cache]
manager_interval = {{ nova_image_cache_manager_interval }}

View File

@ -114,3 +114,5 @@ _qemu_default_conf_dict: |-
{{ qemu_dict }}
_nova_qemu_conf: "{{ _qemu_default_conf_dict | combine(qemu_conf_dict) }}"
_nova_oslomsg_heartbeat_in_pthread: "{{ (nova_services['nova-compute']['group'] in group_names) | ternary(False, True) }}"