Fix repair-is-finished-but-message-not-consumed DoS during peer SIGSTOP
This commit is contained in:
parent
53ce6d89dd
commit
1d8bc19891
1 changed files with 9 additions and 0 deletions
|
@ -390,6 +390,7 @@ handle_cast(_Cast, S) ->
|
||||||
handle_info(tick_check_environment, #ch_mgr{ignore_timer=true}=S) ->
|
handle_info(tick_check_environment, #ch_mgr{ignore_timer=true}=S) ->
|
||||||
{noreply, S};
|
{noreply, S};
|
||||||
handle_info(tick_check_environment, S) ->
|
handle_info(tick_check_environment, S) ->
|
||||||
|
gobble_ticks(),
|
||||||
{{_Delta, Props, _Epoch}, S1} = do_react_to_env(S),
|
{{_Delta, Props, _Epoch}, S1} = do_react_to_env(S),
|
||||||
S2 = sanitize_repair_state(S1),
|
S2 = sanitize_repair_state(S1),
|
||||||
S3 = perhaps_start_repair(S2),
|
S3 = perhaps_start_repair(S2),
|
||||||
|
@ -2538,6 +2539,14 @@ gobble_calls(StaticCall) ->
|
||||||
ok
|
ok
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
gobble_ticks() ->
|
||||||
|
receive
|
||||||
|
tick_check_environment ->
|
||||||
|
gobble_ticks()
|
||||||
|
after 0 ->
|
||||||
|
ok
|
||||||
|
end.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
perhaps_start_repair(#ch_mgr{name=MyName,
|
perhaps_start_repair(#ch_mgr{name=MyName,
|
||||||
|
|
Loading…
Reference in a new issue