summaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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),