summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2020-03-20 13:34:55 +0300
committerMichael Klishin <michael@clojurewerkz.org>2020-03-20 13:34:55 +0300
commit2bef03c67d5645b59a941d36a923b0e83fe4873c (patch)
tree13100f159fab647e80dca69ee194b2da1dab396b
parentc998cc4b8ff7ea7430b14322f19dab3de5c13b1d (diff)
downloadrabbitmq-server-git-2bef03c67d5645b59a941d36a923b0e83fe4873c.tar.gz
Make the list of discovered nodes unique before using it
Backends can return duplicates, sometimes for reasons outside of their control, e.g. implicit or explicit versioning of values by the data store they are backed by.
-rw-r--r--src/rabbit_mnesia.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index d0ef4d5dc8..b4f6eebbd7 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -142,7 +142,7 @@ run_peer_discovery_with_retries(RetriesLeft, DelayInterval) ->
(Name, BadNames) when is_atom(Name) -> BadNames;
(Name, BadNames) -> [Name | BadNames]
end,
- {DiscoveredNodes, NodeType} =
+ {DiscoveredNodes0, NodeType} =
case rabbit_peer_discovery:discover_cluster_nodes() of
{error, Reason} ->
RetriesLeft1 = RetriesLeft - 1,
@@ -161,6 +161,7 @@ run_peer_discovery_with_retries(RetriesLeft, DelayInterval) ->
{ok, _} ->
e(invalid_cluster_nodes_conf)
end,
+ DiscoveredNodes = lists:usort(DiscoveredNodes0),
rabbit_log:info("All discovered existing cluster peers: ~s~n",
[rabbit_peer_discovery:format_discovered_nodes(DiscoveredNodes)]),
Peers = nodes_excl_me(DiscoveredNodes),