Bug 1358311
Summary: | RabbitMQ resources fail to start in HA IPv6 deployment | ||
---|---|---|---|
Product: | Red Hat OpenStack | Reporter: | Marius Cornea <mcornea> |
Component: | rhosp-director | Assignee: | Michele Baldessari <michele> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Omri Hochman <ohochman> |
Severity: | urgent | Docs Contact: | |
Priority: | urgent | ||
Version: | 9.0 (Mitaka) | CC: | ahirshbe, apevec, dbecker, fdinitto, fpan, jason.dobies, jcoufal, jeckersb, jjoyce, lhh, lnatapov, mburns, mcornea, michele, morazi, plemenko, prakash.ramchandran, rhel-osp-director-maint, sasha, srevivo, tvignaud, ushkalim |
Target Milestone: | ga | Keywords: | Triaged |
Target Release: | 9.0 (Mitaka) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | 1347802 | Environment: | |
Last Closed: | 2016-07-25 07:29:22 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1347802 | ||
Bug Blocks: | 1344405 |
Description
Marius Cornea
2016-07-20 13:38:02 UTC
Hi Peter, I have a question about backwards compatibility. Suppose we somehow implement: if CLUSTERING_OVER_IPV4 then SERVER_ERL_ARGS="-proto_dist inet_tcp +P 1048576" else // CLUSTERING_OVER_IPV6 SERVER_ERL_ARGS="-proto_dist inet6_tcp +P 1048576" fi What happens if we set those variables in director/tripleo and rabbit does not have your patch included? Just trying to understand the impact of how to backport this and how we need to synchronize rabbit+director/tripleo here. Thanks, Michele First of all, rabbitmq w/o patches won't behave well in a fully IPv6 environment. So you may consider that cluster management over IPv6 is broken anyway. This means that the only affected case which might have some regressions is cluster management over IPv4 (RabbitMQ itself can open AMQP ports using IPv4 and/or IPv6, but clustering was always done over IPv4). And for IPv4 adding "-proto_dist inet_tcp" won't change anything since it's a default value. Note that we're stepping into unchartered territory. IPv6 Erlang distribution is a very new thing. E.g. people *always* rely on IPv4 for cluster management before. So we may see some other unknown effects. (I wanted to test stuff in master but I am blocked by https://review.openstack.org/#/c/345542 and https://bugs.launchpad.net/tripleo/+bug/1605363) Hi Peter, just a small clarification. Today in mitaka we already have the following: $rabbit_ipv6 = str2bool(hiera('rabbit_ipv6', false)) if $rabbit_ipv6 { $rabbit_env = merge(hiera('rabbitmq_environment'), { 'RABBITMQ_SERVER_START_ARGS' => '"-proto_dist inet6_tcp"' }) } else { $rabbit_env = hiera('rabbitmq_environment') } class { '::rabbitmq': service_manage => false, tcp_keepalive => false, config_kernel_variables => hiera('rabbitmq_kernel_variables'), config_variables => hiera('rabbitmq_config_variables'), environment_variables => $rabbit_env, } .... So basically the only thing missing as far as I understand is the addition of "-proto_dist inet_tcp" in the ipv4 case. But since you mentioned before that this is the default, I think we should be good already, am I correct here or do we need to force "-proto_dist inet_tcp" in the ipv4 case? Thanks, Michele If the answer will be "yes, we need it", this will be the needed change: diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp index ef54df2f2ce3..63d636afb108 100644 --- a/puppet/manifests/overcloud_controller_pacemaker.pp +++ b/puppet/manifests/overcloud_controller_pacemaker.pp @@ -122,7 +122,9 @@ if hiera('step') >= 1 { 'RABBITMQ_SERVER_START_ARGS' => '"-proto_dist inet6_tcp"' }) } else { - $rabbit_env = hiera('rabbitmq_environment') + $rabbit_env = merge(hiera('rabbitmq_environment'), { + 'RABBITMQ_SERVER_START_ARGS' => '"-proto_dist inet_tcp"' + }) } class { '::rabbitmq': (In reply to Michele Baldessari from comment #3) > So basically the only thing missing as far as I understand is the > addition of "-proto_dist inet_tcp" in the ipv4 case. But since you mentioned > before that this is the default, I think we should be good already, am I > correct here or do we need to force "-proto_dist inet_tcp" in the ipv4 case? We don't need to add anything extra in case of IPv4. So no, there is no need to add a special case of IPv4. Thanks Peter, so I am closing this one since the code is in tripleo mitaka already. Marius, if testing of https://bugzilla.redhat.com/show_bug.cgi?id=1347802 brings up anything fishy do let us know. thanks all, Michele |