Skip to content

Commit b67c65c

Browse files
dcorbachomergify[bot]
authored andcommitted
Classic peer discovery: node list warnings
Log warnings when: - Local node is not present. Even though we force it on the node list, this will not work for other cluster nodes if they have the same list. - There are duplicated nodes (cherry picked from commit 647d65b)
1 parent 48c2046 commit b67c65c

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

deps/rabbit/src/rabbit_peer_discovery_classic_config.erl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@
2121
list_nodes() ->
2222
case application:get_env(rabbit, cluster_nodes, {[], disc}) of
2323
{Nodes, NodeType} ->
24+
check_local_node(Nodes),
25+
check_duplicates(Nodes),
2426
{ok, {add_this_node(Nodes), NodeType}};
2527
Nodes when is_list(Nodes) ->
28+
check_local_node(Nodes),
29+
check_duplicates(Nodes),
2630
{ok, {add_this_node(Nodes), disc}}
2731
end.
2832

@@ -33,6 +37,26 @@ add_this_node(Nodes) ->
3337
false -> [ThisNode | Nodes]
3438
end.
3539

40+
check_duplicates(Nodes) ->
41+
case (length(lists:usort(Nodes)) == length(Nodes)) of
42+
true ->
43+
ok;
44+
false ->
45+
rabbit_log:warning("Classic peer discovery backend: list of "
46+
"nodes contains duplicates ~0tp",
47+
[Nodes])
48+
end.
49+
50+
check_local_node(Nodes) ->
51+
case lists:member(node(), Nodes) of
52+
true ->
53+
ok;
54+
false ->
55+
rabbit_log:warning("Classic peer discovery backend: list of "
56+
"nodes does not contain the local node ~0tp",
57+
[Nodes])
58+
end.
59+
3660
-spec lock(Nodes :: [node()]) ->
3761
{ok, {{ResourceId :: string(), LockRequesterId :: node()}, Nodes :: [node()]}} |
3862
{error, Reason :: string()}.

0 commit comments

Comments
 (0)