summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2020-09-28 15:57:35 +0300
committerGitHub <noreply@github.com>2020-09-28 15:57:35 +0300
commitcf2805b5c840479373438676bfb2c64e02b873dd (patch)
tree5f9c3318425399a73a030d4b95ff473fac879662
parent6f1d76d68c1083ffeee506514f42c6ccd0e09533 (diff)
parent47a509578d1f39bcda1db8f193123214e9fd6c8d (diff)
downloadrabbitmq-server-git-cf2805b5c840479373438676bfb2c64e02b873dd.tar.gz
Merge pull request #2455 from rabbitmq/rabbitmq-server-2421
Exclude consumers suspected as down from the consumer count
-rw-r--r--src/rabbit_fifo.erl5
-rw-r--r--test/rabbit_fifo_SUITE.erl2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/rabbit_fifo.erl b/src/rabbit_fifo.erl
index 79b2bb4f72..85d173f39a 100644
--- a/src/rabbit_fifo.erl
+++ b/src/rabbit_fifo.erl
@@ -848,7 +848,10 @@ query_ra_indexes(#?MODULE{ra_indexes = RaIndexes}) ->
query_consumer_count(#?MODULE{consumers = Consumers,
waiting_consumers = WaitingConsumers}) ->
- maps:size(Consumers) + length(WaitingConsumers).
+ Up = maps:filter(fun(_ConsumerId, #consumer{status = Status}) ->
+ Status =/= suspected_down
+ end, Consumers),
+ maps:size(Up) + length(WaitingConsumers).
query_consumers(#?MODULE{consumers = Consumers,
waiting_consumers = WaitingConsumers,
diff --git a/test/rabbit_fifo_SUITE.erl b/test/rabbit_fifo_SUITE.erl
index 8431dd8db7..8b3201845b 100644
--- a/test/rabbit_fifo_SUITE.erl
+++ b/test/rabbit_fifo_SUITE.erl
@@ -1061,7 +1061,7 @@ query_consumers_test(_) ->
Consumer#consumer{status = suspected_down}, Consumers0),
State2 = State1#rabbit_fifo{consumers = Consumers1},
- ?assertEqual(4, rabbit_fifo:query_consumer_count(State2)),
+ ?assertEqual(3, rabbit_fifo:query_consumer_count(State2)),
Consumers2 = rabbit_fifo:query_consumers(State2),
?assertEqual(4, maps:size(Consumers2)),
maps:fold(fun(_Key, {Pid, Tag, _, _, Active, ActivityStatus, _, _}, _Acc) ->