diff options
| author | Michael Klishin <klishinm@vmware.com> | 2020-09-28 15:57:35 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-28 15:57:35 +0300 |
| commit | cf2805b5c840479373438676bfb2c64e02b873dd (patch) | |
| tree | 5f9c3318425399a73a030d4b95ff473fac879662 | |
| parent | 6f1d76d68c1083ffeee506514f42c6ccd0e09533 (diff) | |
| parent | 47a509578d1f39bcda1db8f193123214e9fd6c8d (diff) | |
| download | rabbitmq-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.erl | 5 | ||||
| -rw-r--r-- | test/rabbit_fifo_SUITE.erl | 2 |
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) -> |
