diff --git a/ansible/roles/rabbitmq/templates/rabbitmq-env.conf.j2 b/ansible/roles/rabbitmq/templates/rabbitmq-env.conf.j2 index bb2a47872f..47ef8fe06c 100644 --- a/ansible/roles/rabbitmq/templates/rabbitmq-env.conf.j2 +++ b/ansible/roles/rabbitmq/templates/rabbitmq-env.conf.j2 @@ -4,11 +4,15 @@ RABBITMQ_BOOT_MODULE=rabbit_clusterer RABBITMQ_LOG_BASE=/var/log/kolla/rabbitmq RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/plugins/rabbitmq_clusterer-3.5.x-189b3a81.ez/rabbitmq_clusterer-3.5.x-189b3a81/ebin" -# TODO(sdake, vhosakot) Heisenbugs await if the control services are collocated on -# one node. The reason is epmd binds to wildcard (all interfaces) and could -# potentially interact with the neutron external or tenant networks. -# unfortunately epmd is broken with ipv6, so yeah, no bueno. -# See bug https://bugs.launchpad.net/ubuntu/+source/erlang/+bug/1374109 +# TODO(sdake, vhosakot) +# erlang by default binds to wildcard (all interfaces) and can potentially +# interfere with the neutron external or tenant networks. We should in theory +# bind epmd to the host's IPv4 address to address the issue however this also +# has issues and can crash erlang when it is compiled with IPv6 support. +# See bugs: +# https://bugs.launchpad.net/ubuntu/+source/erlang/+bug/1374109 +# https://bugs.launchpad.net/kolla/+bug/1562701 +# https://bugzilla.redhat.com/show_bug.cgi?id=1324922 # export ERL_EPMD_ADDRESS={{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }} export ERL_EPMD_PORT={{ rabbitmq_epmd_port }}