Skip to content

Commit 7b765da

Browse files
authored
Merge pull request #15210 from rabbitmq/da-fifo-client-timer
Remove dead timer code in `rabbit_fifo_client`
2 parents 9231fb0 + bdf2029 commit 7b765da

File tree

2 files changed

+3
-70
lines changed

2 files changed

+3
-70
lines changed

deps/rabbit/src/rabbit_fifo_client.erl

Lines changed: 3 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
]).
4242

4343
-define(SOFT_LIMIT, 32).
44-
-define(TIMER_TIME, 10000).
4544
-define(COMMAND_TIMEOUT, 30000).
4645
-define(UNLIMITED_PREFETCH_COUNT, 2000). %% something large for ra
4746
%% controls the timer for closing cached segments
@@ -74,7 +73,6 @@
7473
pending = #{} :: #{seq() =>
7574
{term(), rabbit_fifo:command()}},
7675
consumers = #{} :: #{rabbit_types:ctag() => #consumer{}},
77-
timer_state :: term(),
7876
cached_segments :: undefined |
7977
{undefined | reference(),
8078
LastSeenMs :: milliseconds(),
@@ -647,8 +645,8 @@ handle_ra_event(QName, Leader, {applied, Seqs},
647645
% channel is interacting with)
648646
% but the fact the queue has just applied suggests
649647
% it's ok to cancel here anyway
650-
State3 = cancel_timer(State2#state{slow = false,
651-
unsent_commands = #{}}),
648+
State3 = State2#state{slow = false,
649+
unsent_commands = #{}},
652650
% build up a list of commands to issue
653651
Commands = maps:fold(
654652
fun (Cid, {Settled, Returns, Discards}, Acc) ->
@@ -699,26 +697,11 @@ handle_ra_event(QName, _From, {rejected, {not_leader, Leader, _Seq}},
699697
[rabbit_misc:rs(QName), ?MODULE, OldLeader,
700698
Leader, maps:size(Pending)]),
701699
State = resend_all_pending(State0#state{leader = Leader}),
702-
{ok, cancel_timer(State), []};
700+
{ok, State, []};
703701
handle_ra_event(_QName, _From,
704702
{rejected, {not_leader, _UndefinedMaybe, _Seq}}, State0) ->
705703
% TODO: how should these be handled? re-sent on timer or try random
706704
{ok, State0, []};
707-
handle_ra_event(QName, _, timeout, #state{cfg = #cfg{servers = Servers},
708-
leader = OldLeader,
709-
pending = Pending} = State0) ->
710-
case find_leader(Servers) of
711-
undefined ->
712-
%% still no leader, set the timer again
713-
{ok, set_timer(QName, State0), []};
714-
Leader ->
715-
?LOG_DEBUG("~ts: ~s Pending applied Timeout ~w to ~w, "
716-
"resending ~b pending commands",
717-
[rabbit_misc:rs(QName), ?MODULE, OldLeader,
718-
Leader, maps:size(Pending)]),
719-
State = resend_all_pending(State0#state{leader = Leader}),
720-
{ok, State, []}
721-
end;
722705
handle_ra_event(QName, Leader, close_cached_segments,
723706
#state{cached_segments = CachedSegments} = State) ->
724707
{ok,
@@ -1021,24 +1004,6 @@ add_command(Cid, return, MsgIds, Acc) ->
10211004
add_command(Cid, discard, MsgIds, Acc) ->
10221005
[rabbit_fifo:make_discard(Cid, MsgIds) | Acc].
10231006

1024-
set_timer(QName, #state{leader = Leader0,
1025-
cfg = #cfg{servers = [Server | _]}} = State) ->
1026-
Leader = case Leader0 of
1027-
undefined -> Server;
1028-
_ ->
1029-
Leader0
1030-
end,
1031-
Ref = erlang:send_after(?TIMER_TIME, self(),
1032-
{'$gen_cast',
1033-
{queue_event, QName, {Leader, timeout}}}),
1034-
State#state{timer_state = Ref}.
1035-
1036-
cancel_timer(#state{timer_state = undefined} = State) ->
1037-
State;
1038-
cancel_timer(#state{timer_state = Ref} = State) ->
1039-
_ = erlang:cancel_timer(Ref, [{async, true}, {info, false}]),
1040-
State#state{timer_state = undefined}.
1041-
10421007
find_local_or_leader(#state{leader = Leader,
10431008
cfg = #cfg{servers = Servers}}) ->
10441009
case find_local(Servers) of
@@ -1055,16 +1020,6 @@ find_local([_ | Rem]) ->
10551020
find_local([]) ->
10561021
undefined.
10571022

1058-
1059-
find_leader([]) ->
1060-
undefined;
1061-
find_leader([Server | Servers]) ->
1062-
case ra:members(Server, 500) of
1063-
{ok, _, Leader} -> Leader;
1064-
_ ->
1065-
find_leader(Servers)
1066-
end.
1067-
10681023
qref({Ref, _}) -> Ref;
10691024
qref(Ref) -> Ref.
10701025

deps/rabbit/test/rabbit_fifo_int_SUITE.erl

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ all_tests() ->
2525
return,
2626
lost_return_is_resent_on_applied_after_leader_change,
2727
rabbit_fifo_returns_correlation,
28-
resends_lost_command,
2928
returns,
3029
returns_after_down,
3130
resends_after_lost_applied,
@@ -296,27 +295,6 @@ usage(Config) ->
296295
?assert(Use > 0.0),
297296
ok.
298297

299-
resends_lost_command(Config) ->
300-
ClusterName = ?config(cluster_name, Config),
301-
ServerId = ?config(node_id, Config),
302-
ok = start_cluster(ClusterName, [ServerId]),
303-
304-
ok = meck:new(ra, [passthrough]),
305-
306-
F0 = rabbit_fifo_client:init([ServerId]),
307-
{ok, F1, []} = rabbit_fifo_client:enqueue(ClusterName, msg1, F0),
308-
% lose the enqueue
309-
meck:expect(ra, pipeline_command, fun (_, _, _) -> ok end),
310-
{ok, F2, []} = rabbit_fifo_client:enqueue(ClusterName, msg2, F1),
311-
meck:unload(ra),
312-
{ok, F3, []} = rabbit_fifo_client:enqueue(ClusterName, msg3, F2),
313-
{_, _, F4} = process_ra_events(receive_ra_events(2, 0), ClusterName, F3),
314-
{ok, _, {_, _, _, _, msg1}, F5} = rabbit_fifo_client:dequeue(ClusterName, <<"tag">>, settled, F4),
315-
{ok, _, {_, _, _, _, msg2}, F6} = rabbit_fifo_client:dequeue(ClusterName, <<"tag">>, settled, F5),
316-
{ok, _, {_, _, _, _, msg3}, _F7} = rabbit_fifo_client:dequeue(ClusterName, <<"tag">>, settled, F6),
317-
rabbit_quorum_queue:stop_server(ServerId),
318-
ok.
319-
320298
two_quick_enqueues(Config) ->
321299
ClusterName = ?config(cluster_name, Config),
322300
ServerId = ?config(node_id, Config),

0 commit comments

Comments
 (0)