@@ -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