Skip to content

Commit 945b04f

Browse files
committed
Merge branch 'stable'
2 parents 989cde8 + e03e7da commit 945b04f

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

src/rabbit_node_monitor.erl

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -220,38 +220,42 @@ pause_partition_guard() ->
220220
{ok, M} = application:get_env(rabbit, cluster_partition_handling),
221221
case M of
222222
pause_minority ->
223-
pause_minority_guard([]);
223+
pause_minority_guard([], ok);
224224
{pause_if_all_down, PreferredNodes, _} ->
225-
pause_if_all_down_guard(PreferredNodes, []);
225+
pause_if_all_down_guard(PreferredNodes, [], ok);
226226
_ ->
227227
put(pause_partition_guard, not_pause_mode),
228228
ok
229229
end;
230-
{minority_mode, Nodes} ->
231-
pause_minority_guard(Nodes);
232-
{pause_if_all_down_mode, PreferredNodes, Nodes} ->
233-
pause_if_all_down_guard(PreferredNodes, Nodes)
230+
{minority_mode, Nodes, LastState} ->
231+
pause_minority_guard(Nodes, LastState);
232+
{pause_if_all_down_mode, PreferredNodes, Nodes, LastState} ->
233+
pause_if_all_down_guard(PreferredNodes, Nodes, LastState)
234234
end.
235235

236-
pause_minority_guard(LastNodes) ->
236+
pause_minority_guard(LastNodes, LastState) ->
237237
case nodes() of
238-
LastNodes -> ok;
239-
_ -> put(pause_partition_guard, {minority_mode, nodes()}),
240-
case majority() of
241-
false -> pausing;
242-
true -> ok
243-
end
238+
LastNodes -> LastState;
239+
_ -> NewState = case majority() of
240+
false -> pausing;
241+
true -> ok
242+
end,
243+
put(pause_partition_guard,
244+
{minority_mode, nodes(), NewState}),
245+
NewState
244246
end.
245247

246-
pause_if_all_down_guard(PreferredNodes, LastNodes) ->
248+
pause_if_all_down_guard(PreferredNodes, LastNodes, LastState) ->
247249
case nodes() of
248-
LastNodes -> ok;
249-
_ -> put(pause_partition_guard,
250-
{pause_if_all_down_mode, PreferredNodes, nodes()}),
251-
case in_preferred_partition(PreferredNodes) of
252-
false -> pausing;
253-
true -> ok
254-
end
250+
LastNodes -> LastState;
251+
_ -> NewState = case in_preferred_partition(PreferredNodes) of
252+
false -> pausing;
253+
true -> ok
254+
end,
255+
put(pause_partition_guard,
256+
{pause_if_all_down_mode, PreferredNodes, nodes(),
257+
NewState}),
258+
NewState
255259
end.
256260

257261
%%----------------------------------------------------------------------------

0 commit comments

Comments
 (0)