Skip to content

Commit 96544a2

Browse files
committed
Trigger tick_timeout immedately after entering leader state.
Instead of waiting a full tick interval after a process enters leader state instead immediately trigger a tick_timeout.
1 parent be44ef2 commit 96544a2

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/ra_server_proc.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -654,8 +654,8 @@ candidate(EventType, Msg, State0) ->
654654
{State, Actions0} = ?HANDLE_EFFECTS(Effects, EventType, State1),
655655
%% reset the tick timer to avoid it triggering early after a leader
656656
%% change
657-
Actions = set_tick_timer(State, Actions0),
658-
next_state(leader, State, Actions)
657+
next_state(leader, State,
658+
[{next_event, cast, tick_timeout} | Actions0])
659659
end.
660660

661661
pre_vote(enter, OldState, #state{leader_monitor = MRef} = State0) ->

test/ra_machine_int_SUITE.erl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,9 @@ aux_command_v1_and_v2(Config) ->
785785
(_RaftState, cast, eval, AuxState, Opaque) ->
786786
%% replaces aux state
787787
{no_reply, AuxState, Opaque};
788+
(_RaftState, cast, tick, AuxState, Opaque) ->
789+
%% replaces aux state
790+
{no_reply, AuxState, Opaque};
788791
(_RaftState, cast, NewState, _AuxState, Opaque0) ->
789792
{Idx, _} = ra_aux:log_last_index_term(Opaque0),
790793
{{_Term, _Meta, apple}, Opaque} = ra_aux:log_fetch(Idx, Opaque0),
@@ -831,6 +834,8 @@ aux_eval(Config) ->
831834
(_RaftState, _, eval, AuxState, Log, _MacState) ->
832835
%% monitors a process
833836
Self ! got_eval,
837+
{no_reply, AuxState, Log, []};
838+
(_RaftState, _, _, AuxState, Log, _MacState) ->
834839
{no_reply, AuxState, Log, []}
835840
end),
836841
ok = start_cluster(ClusterName, {module, Mod, #{}}, Cluster),

0 commit comments

Comments
 (0)