Skip to content

Commit 75291c7

Browse files
kjnilssonKarl Nilsson
authored andcommitted
QQ: force delete followers after leader has terminated.
Also try a longer sleep for mqtt_shared_SUITE so that the delete operation stands a chance to time out and move on to the forced deletion stage. In some mixed machine version scenarios some followers will never apply the poison pill command so we may as well force delete them just in case.
1 parent 24e3296 commit 75291c7

File tree

4 files changed

+11
-1
lines changed

4 files changed

+11
-1
lines changed

deps/rabbit/app.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ def all_beam_files(name = "all_beam_files"):
148148
"src/rabbit_fifo_index.erl",
149149
"src/rabbit_fifo_v0.erl",
150150
"src/rabbit_fifo_v1.erl",
151+
"src/rabbit_fifo_v3.erl",
151152
"src/rabbit_file.erl",
152153
"src/rabbit_global_counters.erl",
153154
"src/rabbit_guid.erl",
@@ -417,6 +418,7 @@ def all_test_beam_files(name = "all_test_beam_files"):
417418
"src/rabbit_fifo_index.erl",
418419
"src/rabbit_fifo_v0.erl",
419420
"src/rabbit_fifo_v1.erl",
421+
"src/rabbit_fifo_v3.erl",
420422
"src/rabbit_file.erl",
421423
"src/rabbit_global_counters.erl",
422424
"src/rabbit_guid.erl",
@@ -573,6 +575,7 @@ def all_srcs(name = "all_srcs"):
573575
"src/rabbit_fifo_dlx.hrl",
574576
"src/rabbit_fifo_v0.hrl",
575577
"src/rabbit_fifo_v1.hrl",
578+
"src/rabbit_fifo_v3.hrl",
576579
"src/rabbit_stream_coordinator.hrl",
577580
"src/rabbit_stream_sac_coordinator.hrl",
578581
],
@@ -704,6 +707,7 @@ def all_srcs(name = "all_srcs"):
704707
"src/rabbit_fifo_index.erl",
705708
"src/rabbit_fifo_v0.erl",
706709
"src/rabbit_fifo_v1.erl",
710+
"src/rabbit_fifo_v3.erl",
707711
"src/rabbit_file.erl",
708712
"src/rabbit_global_counters.erl",
709713
"src/rabbit_guid.erl",

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,9 @@ delete(Q, _IfUnused, _IfEmpty, ActingUser) when ?amqqueue_is_quorum(Q) ->
736736
MRef = erlang:monitor(process, Leader),
737737
receive
738738
{'DOWN', MRef, process, _, _} ->
739+
%% leader is down,
740+
%% force delete remaining members
741+
ok = force_delete_queue(lists:delete(Leader, Servers)),
739742
ok
740743
after Timeout ->
741744
erlang:demonitor(MRef, [flush]),

deps/rabbitmq_mqtt/test/shared_SUITE.erl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,9 @@ delete_create_queue(Config) ->
934934
timer:sleep(2),
935935
delete_queue(Ch, [CQ1, QQ]),
936936
%% Give queues some time to be fully deleted
937-
timer:sleep(2000),
937+
%% TODO: wait longer for quorum queues in mixed mode as it can take longer
938+
%% for deletion to complete, delete timeout is 5s so we need to exceed that
939+
timer:sleep(6000),
938940

939941
%% We expect confirms for all messages.
940942
%% Confirm here does not mean that messages made it ever to the deleted queues.

moduleindex.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,7 @@ rabbit:
648648
- rabbit_fifo_index
649649
- rabbit_fifo_v0
650650
- rabbit_fifo_v1
651+
- rabbit_fifo_v3
651652
- rabbit_file
652653
- rabbit_global_counters
653654
- rabbit_guid

0 commit comments

Comments
 (0)